Java JVM outof memory  -  Thread blocks..

Hi,
I am running web application on Apache/tomcat with MySQL5.0.46 database. Application server running witout any problem for 2 days and having around 100 threads. One of my threads throws OutOfMemory Exception,
Exception in thread "MainSocketSession-10.229.6.51" 20:34:12:956 PM java.lang.OutOfMemoryError: Java heap space
I have enabled the -XX:+HeapDumpOnOutOfMemoryError in my application and set the MaX Heap size as 200M. While OutOfMemory erxception thrown, it will wrote hprof file and Java Heap Size is around 38 MB. {color:#3366ff}*Eventhough Heap size exceed, the above thread throws OutOfMemory exception. Why it throws outofmemory??.* {color} Even after outofmemory exception, my application will working fine.
Can you anyone please any one explain why that thread throws OutOfMemory error.
{color:#0000ff}*Heap Size is 38 MB.*
Max Heap Size is set as 200 MB.. but MainSocketSession throws OutOfMemory error, why??
How to analyze and fix this?? .. If you need any additional info .. I will provide you...{color}
Thanks
R.Ravikumar

SmartRavi wrote:
I am running web application on Apache/tomcat with MySQL5.0.46 database. Application server running witout any problem for 2 days and having around 100 threads. One of my threads throws OutOfMemory Exception,Is this running on a Sun JRE or JDK? What version?
Exception in thread "MainSocketSession-10.229.6.51" 20:34:12:956 PM java.lang.OutOfMemoryError: Java heap space
I have enabled the -XX:+HeapDumpOnOutOfMemoryError in my application and set the Max Heap size as 200M. When OOME is thrown, it will wrote hprof file and Java Heap Size is around 38 MB. Even though Heap size exceed, the above thread throws OOME. Why it throws OOME? Even after OOME, my application will working fine.
Can you anyone please any one explain why that thread throws OOME.
Heap Size is 38 MB.
Max Heap Size is set as 200 MB.. but MainSocketSession throws OOME, why??
How to analyze and fix this?Set -Xmx=200m -Xms=200mto rule out the JVM only asking for memory later, when the OS does not have any to give.
If your application decides to allocate a large object (as an example int[50000000] would take 200m)
you will get OOME - the heap will be unaffected (well, a GC cycle will have happened).

Similar Messages

  • Java.lang.Outof Memory Exception for Image

    Hi
    I am having an applet which displays some tiff image. when i am trying to print that image , iam getting OutOf Memory exception ....
    I increased heap size by setting the environment variable...
    i.e Variable : JAVA_OPTS
    Value : -Xms128m -Xmx 512m
    Even though i increased the heap size, i am getting the same exception...
    Can any body solve it ....
    Exception is :..........
    Java.lang.OutOfMemoryError
    Thanks

    Hello,
    I have the same pb... (see "TIFF : how to read with tiles")
    I just know that we have to divide the tiff into a grid of "tiles".
    By playing with tiles, images are processed gradually instead of being entirely stored in the memory.
    But I don't know how to do...

  • Thread blocking on java.nio.charset.CoderResult

    Hello all,
    I have a multi-threaded app which does some fairly intestive string operations (basically extracts text from documents for indexing a search system).
    I am seeing a massive bottleneck around the java.nio.charset.CoderResult class. When profiling, I see a whole stack of threads blocking on (waiting for) a monitor on this java.nio.charset.CoderResult class. Seems to be a result of string encoding/decoding (I am often encoding strings as UTF-8).
    Anyone know why the JVM would want my threads to sync on this class? It's creating a huge performance issue for my app. Approximately 15% of ALL the processing time is spent waiting for this class.
    Help!

    I would guess that you're using some of the static methods in the CoderResult class. The static methods CoderResult.unmappableCache(), CoderResult.malformedForLength() and CoderResult.malformedCache all use a static inner class called Cache. Its get() method is synchronized on Cache.class. Since the Cache inner-class is static, any part of your multi-threaded application that goes through the Cache.get() method is going to be waiting for the lock on Cache.class.
    Could you create a CoderResult instance for each thread? That would mean that there would be a different static Cache class for each thread, reducing the number of threads competing for the Cache.class lock.
    I'd have to see some of your code to give a better answer.
    Brian

  • Can off JVM heap Memory used in the Near-Cache front-tier

    I had tried to config a near-Cache used nio-manager(off JVM heap) in the Front-tier.
    <near-scheme>
          <scheme-name>CohApp-near</scheme-name>
          <front-scheme>
            <external-scheme>
            </external-scheme>
          </front-scheme>
          <back-scheme>
            <distributed-scheme>
              <scheme-ref>CohApp-distributed</scheme-ref>
            </distributed-scheme>
          </back-scheme>
          <invalidation-strategy>auto</invalidation-strategy>
          <autostart>true</autostart>
        </near-scheme>
    when start 'com.tangosol.net.DefaultCacheServer' for this config, error as:
    Oracle Coherence Version 3.7.1.0 Build 27797
    Enterprise Edition: Development mode
    Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
    2014-03-30 16:34:17.518/1.201 Oracle Coherence EE 3.7.1.0 <Error> (thread=main,
    member=n/a): Error org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invali
    d content was found starting with element 'external-scheme'. One of '{"http://xm
    lns.oracle.com/coherence/coherence-cache-config":local-scheme, "http://xmlns.ora
    cle.com/coherence/coherence-cache-config":class-scheme}' is expected. - line 92
    Exception in thread "main" (Wrapped: Failed to load the factory) (Wrapped: Missi
    ng or inaccessible constructor "com.tangosol.net.DefaultConfigurableCacheFactory
    (String)"
    <configurable-cache-factory-config>
      <class-name>com.tangosol.net.DefaultConfigurableCacheFactory</class-name>
      <init-params>
        <init-param>
          <param-type>java.lang.String</param-type>
          <param-value>coherence-cache-config.xml</param-value>
        </init-param>
      </init-params>
    </configurable-cache-factory-config>) java.lang.reflect.InvocationTargetExceptio
    n
            at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
            at com.tangosol.net.ScopedCacheFactoryBuilder.getDefaultFactory(ScopedCa
    cheFactoryBuilder.java:311)
            at com.tangosol.net.DefaultCacheFactoryBuilder.getSingletonFactory(Defau
    ltCacheFactoryBuilder.java:48)
            at com.tangosol.net.DefaultCacheFactoryBuilder.getFactory(DefaultCacheFa
    ctoryBuilder.java:121)
            at com.tangosol.net.ScopedCacheFactoryBuilder.getConfigurableCacheFactor
    y(ScopedCacheFactoryBuilder.java:112)
            at com.tangosol.net.CacheFactory.getConfigurableCacheFactory(CacheFactor
    y.java:126)
            at com.tangosol.net.DefaultCacheServer.getDefaultConfigurableCacheFactor
    y(DefaultCacheServer.java:364)
            at com.tangosol.net.DefaultCacheServer.main(DefaultCacheServer.java:197)
    Caused by: (Wrapped: Missing or inaccessible constructor "com.tangosol.net.Defau
    ltConfigurableCacheFactory(String)"
    <configurable-cache-factory-config>
      <class-name>com.tangosol.net.DefaultConfigurableCacheFactory</class-name>
      <init-params>
        <init-param>
          <param-type>java.lang.String</param-type>
          <param-value>coherence-cache-config.xml</param-value>
        </init-param>
      </init-params>
    </configurable-cache-factory-config>) java.lang.reflect.InvocationTargetExceptio
    n
            at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
            at com.tangosol.run.xml.XmlHelper.createInstance(XmlHelper.java:2652)
            at com.tangosol.run.xml.XmlHelper.createInstance(XmlHelper.java:2536)
            at com.tangosol.net.ScopedCacheFactoryBuilder.getDefaultFactory(ScopedCa
    cheFactoryBuilder.java:273)
            ... 6 more
    Caused by: java.lang.reflect.InvocationTargetException
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
    orAccessorImpl.java:39)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
    onstructorAccessorImpl.java:27)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
            at com.tangosol.util.ClassHelper.newInstance(ClassHelper.java:694)
            at com.tangosol.run.xml.XmlHelper.createInstance(XmlHelper.java:2611)
            ... 8 more
    Caused by: (Wrapped: Failed to load cache configuration: coherence-cache-config.
    xml) (Wrapped) java.io.IOException: Exception occurred during schema validation:
    cvc-complex-type.2.4.a: Invalid content was found starting with element 'externa
    l-scheme'. One of '{"http://xmlns.oracle.com/coherence/coherence-cache-config":l
    ocal-scheme, "http://xmlns.oracle.com/coherence/coherence-cache-config":class-sc
    heme}' is expected.
            at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
            at com.tangosol.run.xml.XmlHelper.loadResourceInternal(XmlHelper.java:34
    1)
            at com.tangosol.run.xml.XmlHelper.loadFileOrResource(XmlHelper.java:283)
            at com.tangosol.net.DefaultConfigurableCacheFactory.loadConfig(DefaultCo
    nfigurableCacheFactory.java:439)
            at com.tangosol.net.DefaultConfigurableCacheFactory.loadConfig(DefaultCo
    nfigurableCacheFactory.java:425)
            at com.tangosol.net.DefaultConfigurableCacheFactory.<init>(DefaultConfig
    urableCacheFactory.java:155)
            ... 14 more
    Caused by: (Wrapped) java.io.IOException: Exception occurred during schema valid
    ation:
    cvc-complex-type.2.4.a: Invalid content was found starting with element 'externa
    l-scheme'. One of '{"http://xmlns.oracle.com/coherence/coherence-cache-config":l
    ocal-scheme, "http://xmlns.oracle.com/coherence/coherence-cache-config":class-sc
    heme}' is expected.
            at com.tangosol.run.xml.XmlHelper.loadXml(XmlHelper.java:122)
            at com.tangosol.run.xml.XmlHelper.loadXml(XmlHelper.java:157)
            at com.tangosol.run.xml.XmlHelper.loadResourceInternal(XmlHelper.java:32
    2)
            ... 18 more
    Caused by: java.io.IOException: Exception occurred during schema validation:
    cvc-complex-type.2.4.a: Invalid content was found starting with element 'externa
    l-scheme'. One of '{"http://xmlns.oracle.com/coherence/coherence-cache-config":l
    ocal-scheme, "http://xmlns.oracle.com/coherence/coherence-cache-config":class-sc
    heme}' is expected.
            at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:212)
            at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:93)
            at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:162)
            at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:115)
            at com.tangosol.run.xml.XmlHelper.loadXml(XmlHelper.java:118)
            ... 20 more
    Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid conten
    t was found starting with element 'external-scheme'. One of '{"http://xmlns.orac
    le.com/coherence/coherence-cache-config":local-scheme, "http://xmlns.oracle.com/
    coherence/coherence-cache-config":class-scheme}' is expected.
            at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAX
    ParseException(ErrorHandlerWrapper.java:195)
            at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Err
    orHandlerWrapper.java:131)
            at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(
    XMLErrorReporter.java:384)
            at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(
    XMLErrorReporter.java:318)
            at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErro
    rReporter.reportError(XMLSchemaValidator.java:417)
            at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportS
    chemaError(XMLSchemaValidator.java:3182)
            at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleS
    tartElement(XMLSchemaValidator.java:1806)
            at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startEl
    ement(XMLSchemaValidator.java:705)
            at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scan
    StartElement(XMLNSDocumentScannerImpl.java:400)
            at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
    l$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
            at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(X
    MLDocumentScannerImpl.java:648)
            at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next
    (XMLNSDocumentScannerImpl.java:140)
            at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
    l.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(X
    ML11Configuration.java:808)
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(X
    ML11Configuration.java:737)
            at com.sun.org.apache.xerces.internal.jaxp.validation.StreamValidatorHel
    per.validate(StreamValidatorHelper.java:144)
            at com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.vali
    date(ValidatorImpl.java:111)
            at javax.xml.validation.Validator.validate(Validator.java:127)
            at com.tangosol.run.xml.SaxParser.validateXsd(SaxParser.java:236)
            at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:206)
    So I think that if can off JVM heap Memory used in the Near-Cache front-tier?
    Or can help how to config the  off JVM heap Memory used in the Near-Cache front-tier.
    Thanks.

    Only local-scheme and class-scheme can be used in the front-scheme of a near cache. 

  • Thread blocked in printStackTrace

    I find one of my thread blocked in printStackTrace after perform an overload test. But it doesn't wait any java lock. So I don't know what happened.
    Part of dumped thread stack looked like this:
    "Thread: 553" daemon prio=5 tid=0x00598f68 nid=0x23f runnable [95d7f000..95d7fc28]
         at java.lang.Throwable.getStackTraceElement(Native Method)
         at java.lang.Throwable.getOurStackTrace(Throwable.java:591)
         - locked <0xc423b3a8> (a java.lang.Throwable)
         at java.lang.Throwable.printStackTrace(Throwable.java:510)
    My application runs on solaris, sparc machine. JVM is 1.4.2_04-b05.

    Can u pstack the process at this moment? The stacks of all the threads are probably too large to be shown here.
    Show the thread #575. i.e. nid = 0x23f, convert to decimal = 575, maybe its stuck in the native portion.
    Hope this helps.

  • JVM virtual memory footprint

    I'm running java processes (specifically Tomcat) on a linux system with not too much available memory and I run into a lots of problems as java seems to consume a lot more memory than it would need.
    To understand the problem I created this "unit test":
    [root@vps download]# ulimit -v unlimited
    [root@vps download]# java -version
    java version "1.5.0_14"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
    Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode)
    [root@vps download]# ulimit -v 230000
    [root@vps download]# java -version
    java version "1.5.0_14"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
    Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode)
    [root@vps download]# ulimit -v 220000
    [root@vps download]# java -version
    Error occurred during initialization of VM
    Could not reserve enough space for object heap
    Could not create the Java virtual machine.As you can see the java vm won't start up when the allowed virtual memory is under 230 Mb, which is an amount of memory I can't give java in a virtual server. I have tried limiting the memory consumption with any memory option I could find (starting with the famous -Xmx and -Xms ones) but always with the same results and problems.
    By running Tomcat and using "top" I noticed java requests over 250 Mb virtual memory, while actually using only around 35 Mb. I would be glad to allow this process to reserve up to 100Mb in virtual memory, but over that seems crazy, since I perfectly know my tomcat instance will never require that much memory and since I cannot "afford" all that memory usage from a single process. With that kind of consumption I can't even stop tomcat using the ordinary script (the shutdown.sh script will start another vm to send the stop signal to tomcat but since the first one is already consuming 250 Mb virtual memory and the second one tries to allocate as much I will get the heap error message as my server can't allocate that much total memory on top of the other processes).
    What solutions are there to stop java from reserving memory it won't use?

    ingoio256 wrote:
    First I quote yourself from another (someway similar) thread:
    "Under Linux, the OS allows over-allocation of memory (which means it can reserve memory that it doesn't have the physical RAM or swap file to back it up with)"
    If I was able to do that my problems would be solved: in fact my system doesn't have enough physical+swap memory, but since a lot less will be used by java processes if I was able to instruct the system to allocate it even if it's not available I would have my problems solved.
    Any idea about where I can find help on doing that?It may already be doing that; under Linux, I believe it only looks for memory to back up the allocation when the page is touched. Whether the java process touches all the memory it allocates, I don't know. Maybe it behaves differently when there's no page file.
    The second question is the following:
    I noticed java processes on the windows system don't use as much virtual memory as it happens in my vps: the reported virtual memory allocation is just slightly above the used physical one. Does that depend on a different implementation or does it happen after some time the jvm is running, with unused virtual memory being given back to the system? If the latter was right it would partly ease the problem as I would just need for the java process to be running for a while and then I would have some system resources released. If it's not the case... how can I have linux behave similarly to windows? As in this case it seems more efficient ;)Regarding the memory usage difference, I don't know why that is.
    I've seen people say that the Sun JVM doesn't return memory to the OS after it allocates, but I'm not sure of this. This is another aspect that a different JVM implementation could help with. I think IBM and BEA both have their own implementations you could check out.

  • Oracle BPM installed  Java out-of-memory exception

    Hi,
    I have installed the oracle BPM software in the server have the Ram capacity 8 GB,Could you please suggest some of the do's and don't's to avoid the Java out-of-memory exception which normally appearing on the console of weblogic server.
    My Server details,
    Windows 2008 R2 64 bit, RAM 8 GB,
    The required BPM s/w I installed from the link below,
    http://www.oracle.com/technetwork/middleware/bpm/downloads/index.html?ssSourceSiteId=ocomen
    Thanks in advance for your help.
    Regards,
    Shyam
    Edited by: user13821489 on 06-Feb-2011 22:45

    I had to increase JVM xmx/maxperm in the "set*Env.sh" scripts in the directory where you start WLS. In my dev environment, deploying BAM & BPM together with the Admin server, I finally allocated 4GB max. Jdev.conf is also better if you allocate > 1GB - mine is 1.4GB. I also watch process memory. Multiple re-deployments in my development environment seem to increase the memory, even if I remove process instances and undeploy first. I don't understand the internals very well so perhaps it is behaving correctly, but restarting WLS frees the unused memory that I expected gc to reclaim.

  • Thread Problem - (Thread Blocking Problems?)

    Hi Friends
    In my program while using thread i found a problem in this code .
    In this whlie running the 'msg' was printen only after all 5 inputs are given .
    why i was not getting output after one input.why the thread out was waiting for remaining threads input.
    my code is
    import java.io.*;
    class MyThread extends Thread
      BufferedReader bin;
       MyThread()
         super();
         start();
       public void run()
          try
           bin=new BufferedReader(new InputStreamReader(System.in));
           String msg=bin.readLine();
           System.out.println(msg);
          catch(IOException e)
             System.out.println(e);
    public class Threads
         public static void main(String args[])
              for(int i=0;i<5;i++)
                new MyThread();
    }

    Hi Friends
    In my program while using thread i found a problem
    em in this code .
    In this whlie running the 'msg' was printen only
    after all 5 inputs are given .
    why i was not getting output after one input.why
    hy the thread out was waiting for remaining threads
    input.Probably because of how the scheduler was rotating among the threads while waiting for input and queueing up output.
    When you call readLine, that thread blocks until a line is available. So it probably goes to the next thread's readLine, and so on. All threads are probably blocked waiting for input before you enter a single character.
    Something inside the VM has to coordinate the interaction with the console, and between that and your threads, the out stuff just doesn't get a chance to display right away.
    In general, you can't predict the order of execution of separate threads.

  • Weblogic 10 jsp compliation thread block problem

    hi
    i am using weblogic 10 and jdk1.5.
    My application is deployed in ear format, with 2 wars, and 20 ejbs.
    The ear works ok with weblogic 8.1.
    In the application , one war passes the request to another war, that's the workflow....
    Now when the request is passed on the second war, a jsp is supposed to open....but the application get stuck there.
    The call is like this in a servlet....
         reqDisp = req.getRequestDispatcher("/newIndex.jsp");
    reqDisp.forward(req, res);
    The new index jsp is not opened....there is no problem with it it comiples ok....i check with weblogic appc...and it is working on weblogic 8.1.
    when i stop the server...the log gives me following exception info.
    "ExecuteThread: '12' for queue: 'default'" daemon prio=6 tid=0x2b8edad0 nid=0xc1
    0 in Object.wait() [0x2da1e000..0x2da1fb64]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x07f94608> (a javelin.client.JobWaiter)
    at java.lang.Object.wait(Object.java:474)
    at javelin.client.JobWaiter.blockUntilFinished(JobWaiter.java:45)
    - locked <0x07f94608> (a javelin.client.JobWaiter)
    at javelin.client.ClientUtilsImpl.build(ClientUtilsImpl.java:838)
    at weblogic.servlet.jsp.JavelinxJSPStub.compilePage(JavelinxJSPStub.java:248)
    at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:200)
    at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:164)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:235)
    - locked <0x07ef8220> (a weblogic.servlet.jsp.JavelinxJSPStub)
    at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:391)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:309)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:503)
    at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245)
    at LCDisplayController.handleProcessing(Unknown Source)
    at DisplayControllerServlet.doPost(Unknown Source)
    at DisplayControllerServlet.doGet(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:503)
    at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245)
    at com.orbitech.workflow.servlet.WFAppListController.openWorkitem(WFAppListController.java:793)
    at com.orbitech.workflow.servlet.WFAppListController.processRequest(WFAppListController.java:102)
    at com.orbitech.workflow.servlet.WFAppController.doProcessRequest(WFAppController.java:97)
    at com.orbitech.workflow.servlet.WFAppController.doGet(WFAppController.java:64) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    i think the there is thread blocking and the jsp is not getting compiled or smthing....
    i am unable to understnd the exception....
    any help, suggestion ? thanks in advance.

    We are using jBPM and Hibernate in our application which runs fine on other java application servers. On Weblogic we were getting an error:
    org.hibernate.HibernateException: Errors in named queries: GraphSession...........
    By adding:
    <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
    to our weblogic.xml, Weblogic used our Hibernate3 and antl-2.7.6 .jar files which resolved this issue but created multiple CompilationException errors in many .jsp's. (as follows)
    Error 500--Internal Server Error
    weblogic.servlet.jsp.CompilationException: Failed to compile JSP /WEB-INF/jsp/struts/dashboards/portfolio_chart.jsp
    portfolio_chart.jsp:1:1: The validator class: "org.apache.taglibs.standard.tlv.JstlCoreTLV" has failed with the following exception: "java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory".
    <%@ taglib uri="/jstl-core" prefix="c" %>
    ^---------------------------------------^
    portfolio_chart.jsp:1:1: The validator class: "com.primavera.pvweb.taglib.JSMessageTagLibraryValidator" has failed with the following exception: "java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory".
    <%@ taglib uri="/jstl-core" prefix="c" %>
    ^---------------------------------------^
         at weblogic.servlet.jsp.JavelinxJSPStub.compilePage(JavelinxJSPStub.java:298)
         at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:216)
         at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:165)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:235)
         at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:394)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:309)
    Is this a Weblogic bug ?

  • JNI communiction using a Java and a C++ Thread

    Hi,
    My purpose is to run a Java and a C++ thread parallel.
    The C++ thread receives events from a hardware. Getting an event it should put this (for testing it is just a String ) to a Java method (there the events will be collected in a vector).
    The Java thread should compute these vector step by step when it is scheduled.
    Therefore I have a Java Thread that invokes a native method.
    This C++ method
    1. stores a refernece to the JavaVM in a global var (using env->getJavaVM ),
    2. stores the object (given by JNICall) in a global var (reference to the calling java object),
    3. creates an object dynamically (this implements a Runnable C++ Interface needed for my Thread structure)
    4. and creates (dynamically) and starts a C++ Thread ( that uses the Win API ) giving it the former created object as parameter.
    Following the C++ thread uses the former stored global JavaVM to get a JNIEnv. It also uses the global stored object.
    After this I prepare for executing a callback to Java, e.g. AttachCurrentThread, GetObjectClass, GetMethodID and so on. Finally I sucessfully start some callbacks to Java (in the while loop of the thread).
    Now here is my Problem:
    The described way only works for a few calls and then raises an error. "java.exe hat ein Problem festgestellt und muss beendet werden." (german os) (In english it should be: "java.exe has detected a problem and has to be determined").
    What is wrong with my idea. It is something with the scope of my dynammically created objects? If have no idea anymore.
    Here the source code (C++ part):
    #include <jni.h>
    #include "benchmark.h"
    #include "bench.h"
    #include "canMessage.h"
    JavaVM *jvm;
    jobject javaObject;
    JNIEXPORT void JNICALL Java_Benchmark_startBench(JNIEnv *env, jobject obj, jobject obj2){
         env->GetJavaVM(&jvm);
         javaObject = obj2;
         cout << "\n C++ Starting benchmark\n\n";
         Benchmark *bm = new Benchmark();
         Thread *thread = new Thread(bm);
         thread->start();
         //thread->join(); //uncomment this there will be no error but also
                                         // no java thread doing it's job
    Benchmark::Benchmark(): _continue(false) {
    Benchmark::~Benchmark(){
    unsigned long Benchmark::run(){
         _continue = true;
         JNIEnv *jniEnv;
            jvm->AttachCurrentThread((void **)&jniEnv, NULL);
            jclass javaClass = jniEnv->GetObjectClass(javaObject);
         if(javaClass == NULL){
              cout << "--> Error: javaClass is null";
         jmethodID methodId = jniEnv->GetMethodID(javaClass, "addMessage", "(Ljava/lang/String;)V");
         if(methodId == NULL){
              cout << "--> Error: methodId is null";
         string str ("This is a test text.");
         const char *cStr = str.c_str();
         jstring javaString = jniEnv->NewStringUTF(cStr);
         jniEnv->CallVoidMethod(javaObject, methodId, javaString );
         int i_loopCount = 0;
         while(_continue){
              i_loopCount++;
              cout << i_loopCount << " C++ runing\n";
              jniEnv->MonitorEnter(javaObject);
              jniEnv->CallVoidMethod(javaObject, methodId, javaString );
              jniEnv->MonitorExit(javaObject);
              canMessage = new CANMessage();
              delete canMessage;
              canMessage = NULL;
         return 0;
    void Benchmark::stop(){
         _continue = false;
    }Is there a better and more elegant way to solve my problem?
    Thanks!

    At
    http://codeproject.com/cpp/OOJNIUse.asp
    http://www.simtel.net/product.php[id]93174[sekid]0[SiteID]simtel.net
    http://www.simtel.net/product.php[id]94368[sekid]0[SiteID]simtel.net
    you will find examples how to implement Java Interface in JNI C++ without Java coding.
    At
    http://www.simtel.net/product.php[id]95126[sekid]0[SiteID]simtel.net
    you can get pure JNI interface for DOTNET.

  • How to increase jvm heap memory

    hello all,
    we r facing "outofmemory" exception. could any one kindly help us in increasing the jvm's memory in runtime.
    thanks alot
    raghu

    use java with -Xms and -Xmx options.
    see http://java.sun.com/j2se/1.4/docs/tooldocs/windows/java.html
    nk

  • How to check JVM used memory in code?

    Hello,
    In my code I want to check JVM used memory and dump to a log file. Is any way to do that?
    Thx a lot!
    SG

    Ok, you've been a forum member for how long? Anyway, look at the javadocs:
    http://java.sun.com/j2se/1.4.2/docs/api/
    See the Runtime class.

  • Troubles with timeout using java.nio.channels and non-blocking sockets

    Hello.
    I have a server application that employs java.nio.channels with non-blocking sockets.
    The server waits for connections. The client should connect and be first in sending data.
    Timeouts are significant! If client exceeds the allowed time to send data, the server should break the connection.
    The huge trouble I've discovered that I cannot control the timeout when client connects but remains silent.
    My code looks as follows:
    <pre>
    Selector oSel;
    SocketChannel oSockChan;
    Socket oSock;
    SelectionKey oSelKey;
    Iterator<SelectionKey> oItSelKeys;
    int iCurrState, iMask, iCount;
    iCurrState = INT_SERVER_WORKING;
    iMask = SelectionKey.OP_ACCEPT | SelectionKey.OP_CONNECT | SelectionKey.OP_READ | SelectionKey.OP_WRITE;
    while ( iCurrState == INT_SERVER_WORKING )
    try
    *// retrieving next action*
    iCount = oSel.select();
    if ( iCount > 0 )
    oItSelKeys = oSel.selectedKeys().iterator();
    while ( oItSelKeys.hasNext() )
    oSelKey = oItSelKeys.next();
    oItSelKeys.remove();
    if ( oSelKey.isValid() )
    switch ( oSelKey.readyOps() & iMask ) {
    case SelectionKey.OP_ACCEPT :
    oSockChan = oSSockChan.accept();
    oSockChan.configureBlocking(false);
    oSock = oSockChan.socket();
    oSock.setKeepAlive(true);
    oSockChan.register(oSel,SelectionKey.OP_READ,new MyPacket(oSock.getInetAddress(),oSock.getPort()));
    break;
    case SelectionKey.OP_READ :
    oSelKey.interestOps(0);
    ((MyPacket) oSelKey.attachment()).inRequest(); *// preparing request*
    this.getReader().add(oSelKey); *// sending key to reading thread*
    break;
    case SelectionKey.OP_WRITE :
    oSelKey.interestOps(0);
    ((MyRequest) oSelKey.attachment()).inResponse(); *// preparing response*
    this.getWriter().add(oSelKey); *// sending key to writing thread*
    break;
    case SelectionKey.OP_CONNECT :
    default :
    *// nothing to do*
    catch ( IOException oExcept )
    *// do some actions*
    </pre>
    Timeouts are easily controlled by reading and writing threads (see OP_READ and OP_WRITE ).
    But when a client just connects without consequent data send, the state of this connection remains as OP_ACCEPT. The connection remains open for arbitrarily large time and I cannot control it!
    Please help with idea how can I terminate such connections!

    How can I process the keys that weren't selected at the bottom of the loop? Should I use the method keys() ?Yes. Form a new set from keys() and removeAll(selectedKeys()). Do that before you process selectedKeys().
    And the second moment: as I understood a single key may contain several operations simultaneously? Thus I should use several if's (but not if/else 'cause it's the equivalent of switch ... case ).If there is anything unclear about 'your switch statement is invalid. You need an if/else chain' I fail to see what it is. Try reading it again. And if several ifs were really the equivalent of "switch ... case", there wouldn't be a problem in the first place. They're not, and there is.

  • Outof Memory Error

    Hi Experts,
    An Application of Webservices developed in Jdeveloper 10.1.2.2.0 and has been Deployed on Oracle Application Server 10g.
    Problem has been faced when the requests sent by the client program and no of requests increased to 1600 (estimated requests), then it shows the below error.
    ASOAPException:faultcode=SOAPENV:Server; msg=ajava.lang.outof Memory Error”
    Please guide us to resolve this irritating issue.
    Reply will be Appriciated.
    Muhammad Shahzad Baig
    Software Engineer

    Hi.
    First - I'd try to raise the application's -Xmx to something more than 32M. perhaps 64M.
    Now, there are two possible causes here:
    1 - your application is working ok, but it needs more memory than what the JVM can provide it with at a point of time. If that's the case - raising the -Xmx for the application will take care of it. (This is assuming there are no memory leaks in it).
    2 - your application has memory leaks in it - fix it.
    You can't catch OutOfMemory - it's not an exception raised in your program. It's raised in the JVM.
    Nimo.

  • Does Solaris10 for x86 allow me to set java jvm heap size up to 3G

    Does Solaris10 for x86 allow me to set java jvm heap size up to 3G,is it really true solaris only take 512M memory address space?I can only set 2668M(2.5G)on linux cause linux kernel take 1G memory address space.Thanks~~

    [url http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Runtime.html]Runtime seems to have some useful methods...

Maybe you are looking for

  • How can I sync contacts to IMac, Icloud and Iphone

    My Contacts on my Imac have only one option in settings to sync with my google contacts.  Before Icloud all my contacts and calendar synced just fine between my Imac and Iphone.  Now with Icloud I never seem to be able to sync contact to or from my I

  • Not able to create plnd order in prod view

    Hi, When I try to create an order using product view, it gives me an error message, 'Invalid product-location combination (pegging area), A product-location combination exists in the APO database but not in liveCache' Can someone help me with getting

  • How to develop a simple plugin for adobe illustrator cs2 using xcode on mac os

    I would like to know the steps to develop a simple plug-in for adobe illustrator cs2 using xcode on mac OS...anything like a dialog box displaying "hello World"... I m new to MAC OS...Please help... Thanks in advance

  • FCP won't recognize my DV device

    I recently upgraded to FCP 5.1.1 and can't get it to recognize my DV. At first FCP would open without the "unable to locate external device" warning and not even show a DV device as an option. Now it shows the warning and just won't acknowledge my ca

  • Backing up a STABLE windows install

    I have gotten my xp stable and would like to know whats the best way to back up this partition or the OS? I would like to be able, if need be or if bootcamp gets currpted to go back to my nice and stable install thats I have done all the updates for.