Java.lang.OutOfMemoryError  solved (was NOT a leak)

Alright I'm just posting this to hopefully save someone some time in the future.
This was a bug that dragged out for over a year. An application would be deployed to a production app server and low and behold OutOfMemoryError's would start to be thrown, naturally the new application would look like the most likely culprite. So now the unlucky developer gets to spend hours running the memory profiler and looking in vain for a memory leak that does not exist.
The actual problem was not the Heap running out of memory as in most memory leaks. No, the problem was the app server runs out of Perm Generation space (this is where class loaders and reflection data is stored) by default the Max Perm space is 64MB which is fine for most apps, but on an application server (OC4J in our case) when you have 10 apps with tons of JSP's this space can fill up.
You can check out your perm gen usage by running the jmap tool with the -heap option and pass the pid of the oc4j instance to it, this will tell you your max perm gen space and your current usage.
Anyway to up your max perm gen space, start the java process for your app server with the parameter -XX:MaxPermSize=128m
Problem solved.

Good Luck,
If 10.1.3 uses 1.5.x of the JVM then I believe they added an extra string on the end of of the outofmemoryerror that says Heap or PermGen so you have that hint to go on.
You should take a look at the jmap tool in 1.5 though, you can make it print a dump of what's in the heap then open it up in the tool jhat to take a graphical look of what's hanging out in memory, very useful.
By the way, thanks very much for sharing your
experience.
I will surely encounter your problem since I have a
big app.
I begin deployment to OAS 10.1.3 at the end of the
month, I waited for the latest version since it is
much easier to maintain then previous versions.
Regards
Fred

Similar Messages

  • Java.lang.OutOfMemoryError: PermGen space Not able to open applications

    Hi ,
    I am facing issue in running the application when I deploy 10 applications successfully to the Integrated weblogic server [in jdev].
    Then after some time I am not able to open any of the application.
    Thanks and Regards,
    Vivek Pemawat

    Set MaxPermSize to a higher value.
    export JVM_ARGS="-Xmx1024m -XX:MaxPermSize=256m"
    https://forums.oracle.com/thread/1140785

  • Encounter java.lang.OutOfMemoryError when notifyDestroyed

    Hi...
    i am developing a j2me application using WTK... when my code reaches notifyDestroyed(), it will return me java.lang.OutOfMemoryError and does not exit the midlet. any help?

    There's a bug in the code you didn't think to post here.
    db

  • How to solve :  java.lang.OutOfMemoryError: Java heap space

    Dear all,
    Am using Jdeveloper 11.1.1.3 with weblogic10...
    I keep getting out of memory error while working on the application , here is the exact error message that i copied from the server log :
    ####<28/11/2010 GMT 09:17:58 ص> <Critical> <Health> <javaserver> <AdminServer> <weblogic.GCMonitor> <<anonymous>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000012> <1290935878582> <BEA-310003> <Free memory in the server is 4,541,416 bytes. There is danger of OutOfMemoryError>
    ####<28/11/2010 GMT 09:24:51 ص> <Error> <Kernel> <javaserver> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000029> <1290936291218> <BEA-000802> <ExecuteRequest failed
    java.lang.OutOfMemoryError: Java heap space.
    java.lang.OutOfMemoryError: Java heap space
    >
    ####<28/11/2010 GMT 09:25:04 ص> <Notice> <Diagnostics> <javaserver> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002c> <1290936304406> <BEA-320068> <Watch 'UncheckedException' with severity 'Notice' on server 'AdminServer' has triggered at 28/11/2010 GMT 09:24:56 ص. Notification details:
    WatchRuleType: Log
    WatchRule: (SEVERITY = 'Error') AND ((MSGID = 'BEA-101020') OR (MSGID = 'BEA-101017') OR (MSGID = 'BEA-000802'))
    WatchData: DATE = 28/11/2010 GMT 09:24:51 ص SERVER = AdminServer MESSAGE = ExecuteRequest failed
    java.lang.OutOfMemoryError: Java heap space.
    java.lang.OutOfMemoryError: Java heap space
    SUBSYSTEM = Kernel USERID = <WLS Kernel> SEVERITY = Error THREAD = [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' MSGID = BEA-000802 MACHINE = javaserver TXID = CONTEXTID = 3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000029 TIMESTAMP = 1290936291218
    WatchAlarmType: AutomaticReset
    WatchAlarmResetPeriod: 30000
    >
    ####<28/11/2010 GMT 09:25:36 ص> <Warning> <oracle.dfw.framework> <javaserver> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002c> <1290936336549> <DFW-40121> <failure creating incident from WLDF notification
    java.lang.OutOfMemoryError: Java heap space
    >
    ####<28/11/2010 GMT 09:26:32 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936392224> <BEA-000388> <JVM called WLS shutdown hook. The server will force shutdown now>
    ####<28/11/2010 GMT 09:26:35 ص> <Alert> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936395303> <BEA-000396> <Server shutdown has been requested by <WLS Kernel>>
    ####<28/11/2010 GMT 09:26:35 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936395303> <BEA-000365> <Server state changed to FORCE_SUSPENDING>
    ####<28/11/2010 GMT 09:26:53 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936413632> <BEA-000365> <Server state changed to ADMIN>
    ####<28/11/2010 GMT 09:26:56 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936416757> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>
    ####<28/11/2010 GMT 09:26:59 ص> <Notice> <Server> <javaserver> <AdminServer> <DynamicListenThread[Default[1]]> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000035> <1290936419289> <BEA-002607> <Channel "Default[1]" listening on 127.0.0.1:7001 was shutdown.>
    ####<28/11/2010 GMT 09:27:07 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-41> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936427508> <BEA-000378> <Server failed to shutdown within the configured timeout of 30 seconds. The server process will exit now.>
    i searched the net and it seems that i should increase the java heap size , how can i do that... I have a server with 4G Ram ..
    Regards,
    Lama
    Edited by: Delta on Nov 28, 2010 1:36 AM

    My frien google tells me that you use
    >
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    This can have two reasons:
    * Your Java application has a memory leak. There are tools like YourKit Java Profiler that help you to identify such leaks.
    * Your Java application really needs a lot of memory (more than 128 MB by default!). In this case the Java heap size can be increased using the following runtime parameters:
    java -Xms<initial heap size> -Xmx<maximum heap size>
    >
    Timo

  • How to solve 'java/lang/OutOfMemoryError' when apply weblogic patch 10.3.6.0.10?

    Hi All:  Our platform is IBM AIX power system 64 bit, os level 6.  Oracle Fusion Middleware version is 10.3.6.0.8.  We tried to patch 10.3.6.0.10 on it, but encounter ‘out of memory error’ when  applied WebLogic patch 10.3.6.0.10 on UAT report server.  Currently UAT has 3GB memory (currently is 3G) .
    JVMDUMP006I Processing dump event "systhrow",
    detail "java/lang/OutOfMemoryError
    JVMDUMP032I JVM requested Heap dump using
    '/ora_bin01/u01/oracle/Middleware/utilhd' in response to an event
    JVMDUMP010I Heap dump written to
    /ora_bin01/u01/oracle/Middleware/utils/bsu/heapdump.20150224.152727.6422620.0001.phd
    JVMDUMP032I JVM requested Java dump using
    '/ora_bin01/u01/oracle/Middleware/utils/bsu/javacore.20150224.152727.6422620.0002.txt'
    in response to an event
    JVMDUMP010I Java dump written to
    /ora_bin01/u01/oracle/Middleware/utils/bsu/javacore.20150224.152727.6422620.0002.txt
    JVMDUMP032I JVM requested Snap dump using
    '/ora_bin01/u01/oracle/Middleware/utils/bsu/Snap.20150224.152727.6422620.0003.trc'
    in response to an event
    JVMDUMP006I Processing dump event "systhrow",
    detail "java/lang/OutOfMemoryError" - please wait.
    JVMDUMP010I Snap dump written to
    /ora_bin01/u01/oracle/Middleware/utils/bsu/Snap.20150224.152727.6422620.0003.trc
    JVMDUMP013I Processed dump event "systhrow",
    detail "java/lang/OutOfMemoryError".
    JVMDUMP032I JVM requested Heap dump using
    '/ora_bin01/u01/oracle/Middleware/utils/bsu/heapdump.20150224.152735.6422620.0004.phd'
    in response to an event
    JVMDUMP010I Heap dump written to
    /ora_bin01/u01/oracle/Middleware/utils/bsu/heapdump.20150224.152735.6422620.0004.phd
    JVMDUMP032I JVM requested Java dump using
    '/ora_bin01/u01/oracle/Middleware/utils/bsu/javacore.20150224.152735.6422620.0005.txt'
    in response to an event
    JVMDUMP010I Java dump written to
    /ora_bin01/u01/oracle/Middleware/utils/bsu/javacore.20150224.152735.6422620.0005.txt
    JVMDUMP032I JVM requested Snap dump using
    '/ora_bin01/u01/oracle/Middleware/utils/bsu/Snap.20150224.152735.6422620.0006.trc'
    in response to an event
    Exception in thread "main"
    java.lang.OutOfMemoryError at
    java.lang.StringBuffer.ensureCapacityImpl(StringBuffer.java:335)
    at
    java.lang.StringBuffer.append(StringBuffer.java:201)
    at
    java.lang.Class.throwNoSuchMethodException(Class.java:278)
    at
    java.lang.Class.getMethod(Class.java:845)
    at
    com.bea.cie.common.dao.xbean.XBeanDataHandler.isValueSet(XBeanDataHandler.java:958)
    at
    com.bea.cie.common.dao.xbean.XBeanDataHandler.getValueFromObject(XBeanDataHandler.java:589)
    at
    com.bea.cie.common.dao.xbean.XBeanDataHandler.getSimpleValue(XBeanDataHandler.java:431)
    at
    com.bea.plateng.patch.dao.cat.PatchDependency.getRule(PatchDependency.java:48)
    at
    com.bea.plateng.patch.dao.cat.PatchCatalogHelper.getInvalidatedPatchMap(PatchCatalogHelper.java:1625)
    at com.bea.plateng.patch.PatchSystem.updatePatchCatalog(PatchSystem.java:436)
    at
    com.bea.plateng.patch.PatchSystem.refresh(PatchSystem.java:130)
    at
    com.bea.plateng.patch.PatchSystem.setCacheDir(PatchSystem.java:201)
    at
    com.bea.plateng.patch.Patch.main(Patch.java:281)
    JVMDUMP010I Snap dump written to
    /ora_bin01/u01/oracle/Middleware/utils/bsu/Snap.20150224.152735.6422620.0006.trc
    JVMDUMP013I Processed dump event "systhrow",
    detail "java/lang/OutOfMemoryError".
    Exception in thread "Attach API wait loop"
    java.lang.OutOfMemoryError
       at
    com.ibm.tools.attach.javaSE.CommonDirectory.waitSemaphore(CommonDirectory.java:222)
    at
    com.ibm.tools.attach.javaSE.AttachHandler$WaitLoop.waitForNotification(AttachHandler.java:329)
    at com.ibm.tools.attach.javaSE.AttachHandler$WaitLoop.run(AttachHandler.java:396)
    bsu.sh -install -patch_download_dir=/ora_bin01/u01/oracle/Middleware/utils/bsu/cache_dir -patchlist=12UV -prod_dir=/ora_bin01/u01/oracle/Middleware/wlserver_10.3
    we followed the README.txt instructions, and stop/start weblogic service before/after apply patch. Can anyone suggest a solution or Doc ID for helping us?
    thank you very much!

    Solutions: Bounce the applications and check the arguments if you can increase it.  It is due to memory issue
    You can set these values in CommEnv.sh (.cmd for windows) file located in the weblogic_home/common/bin directory.
    This gets applied to all the domains under that wls home.
    If you want to make the changes to specific domain then edit the SetDomainEnv.sh file located under the domain/bin directory.
    How to solve java.lang.OutOfMemoryError: Java heap space
    solutions:  export JVM_ARGS="-Xms1024m -Xmx1024m"
    How to solve java.lang.OutOfMemoryError: PermGen space
    solution : export JVM_ARGS="-XX:PermSize=64M -XX:MaxPermSize=256m"

  • How to solve this ERROR  --java.lang.OutOfMemoryError: Java heap space

    I am Trying to read one TEXT file line by line. file size is approx. 7 MB or it contain approx. 35000 line of text.
    i am processing that file and export data into another file.
    mean while after some line i get error like below,
    java.lang.OutOfMemoryError: Java heap space
    After this error process stop.
    my application is in Java Swing and i m using java 1.5 version of SDK and JRE.
    is it a JDK version Problem?
    please can any one give me appropriate solutions for this.
    give me answer please.............

    Are you able to post the code you use to read the file? Initially, I'd guess that you're stuck in a loop. Make sure you're getting out of all your loops. You can do this with breakpoints in your IDE's debugger, or by putting a println right after the loop.
    It may also be that your IDE isn't allotted enough of your system's memory, though I doubt that is the case. You can easily google how to increase the memory allotted to the IDE.
    For some reason, garbage collection isn't happening as you're expecting. Make sure you're not holding on to huge stuff any longer than you need to.
    Edited by: Caryy on Aug 14, 2010 5:57 PM

  • Java.lang.OutOfMemoryError when editing a routing note for a Proxy Service?

    Hi,
    Does anyone know why I am getting a java.lang.OutOfMemoryError in the AqualLogic Service Bus logs which freezes the browser (IE) when I try to edit a route node of a proxy service? I can change the name of the node but when I try to edit the node itself, the interface freezes and the out of memory thrown by the Service Bus. I have tried restarting the server etc..... The java memory allocated should already be adequate as it is set to 512Mb. All I can think of doing next is to uninstall the Service Bus and reinstall.
    The logs I am getting can be seen below.....
    Welcome, weblogic Connected to : servicebus Home WLS Console Logout Help AskBEA
    weblogic session Created 9/01/08 13:46 No Conflicts 3 Change(s) 1 Active Session(s)
    The source of this error is com.bea.portlet.adapter.scopedcontent.ActionLookupFailedException: java.lang.OutOfMemoryError at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.executeAction(ScopedContentCommonSupport.java:699) at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.renderInternal(ScopedContentCommonSupport.java:268) at com.bea.portlet.adapter.scopedcontent.StrutsStubImpl.render(StrutsStubImpl.java:107) at com.bea.netuix.servlets.controls.content.NetuiContent.preRender(NetuiContent.java:288) at com.bea.netuix.nf.ControlLifecycle$6.visit(ControlLifecycle.java:427) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:708) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:720) at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:183) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:339) at com.bea.netuix.nf.Lifecycle.runOutbound(Lifecycle.java:186) Caused by: java.lang.OutOfMemoryError
    Thanking you in advance for any help/insight.

    Okay, I fixed the "Incompatible initial and maximum heap sizes specified" issue now. The problem was that in the lh.bat script the parameter -Xmx128M was hardcoded and overwrote my own -Xmx setting.
    I now set JAVA_OPTS to "-Xms1400m -Xmx1400m" which is the maximum that Java accepts without complaining about too little memory. However, I still get the OutOfMemoryError and in addition to that I now also get this error:
    com.waveset.util.Shutdown: Sorry!  This repository has been shut down by an administrator.  Please try to get another instance.
    I've googled already but found only two sites and those weren't really helpful. So, any help is very much appreciated!
    Thanks,
    David

  • Java.lang.OutOfMemoryError: PermGen space error while creat weblogic domain

    Hi,
    OBIEE 11g installing in Linux server now. domain creation is in progress for about an hour and in log I can see below error.
    Creating a new AdminServer Object ...
    AdminServer port is 7001
    Starting the domain ...
    java.lang.OutOfMemoryError: PermGen space
    java.lang.OutOfMemoryError: PermGen space
    java.lang.OutOfMemoryError: PermGen space
    domain creation is still running and looks like it is struck to start domain no idea how to solve the issue. waiting to see whether domain creation successful.
    I was searching on web and found below solution but no idea how to do it in Linux server. Please provide detail instructions to do it.
    * java.lang.OutOfMemoryError: PermGen space
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.getConstructor(Unknown Source)
    Solution: Increase the max permgen space -XX:MaxPermSize=256m
    There can be a leak in the permgen objects. If tuning parameters do not resolve the issue, we need to use the memory leak detector tools and find out which instances in the permgen space are not getting cleared.
    Refer: http://weblogic-wonders.com/weblogic/2010/12/30/different-out-of-memory-issues/
    Appreciate for your help.
    Thanks
    Jay.

    Hi,
    The script that configures the domain $DOMAIN_HOME/bin/setDomainEnv.sh... it should detect you are using JDK from Sun (JAVA_VENDOR="Sun") and add -XX:MaxPermSize=512m automatically...
    Simple solution, use JRockit... This problem only occurs with Sun JDK...
    Alternatively, add manually -XX:MaxPermSize=512m to the last JAVA_PROPERTIES in setDomainEnv.sh then you will be sure it is there...
    Cheers,
    Vlad

  • Error "java.lang.OutOfMemoryError" When Returning Large Number of Docs

    In our SES implementation, we have a custom search interface that allows users to search for documents and then add them to a "shopping cart". Users add then to their shopping cart from search results, by adding docs one-by-one or an Add All option. Once they are done "shopping" they create a report.
    Here is the scenario...
    Users are saerching for documents and seeing that on page 1, there is 1 - 10 of about 300 results. They clicked Add All and want all 300 docs added to their cart.
    What we do under the covers is we execute another search and set the docs requested to 200. We get the array of docs, iterate over them and add the keys to a list. We found 200 docs at a time to be a safe number. However, there are still 100 docs that were not added to their cart and users want all 300 added. In other words, when they click Add All, they want to add all docs, 300, 500, 5000, etc.
    I set the "Maximum Number of Results" to 500 and found that I can safely add up to ~ 350 docs at one time. However, going past this point throws the following error:
    [SOAPException: faultCode=SOAP-ENV:Server; msg= [java.lang.OutOfMemoryError]]
         at oracle.search.query.webservice.client.OracleSearchService.makeSOAPCallRPC(OracleSearchService.java:941)
         at oracle.search.query.webservice.client.OracleSearchService.doOracleSearch(OracleSearchService.java:469)
    After this error is thrown, SES was unable to recover and searching would not work anymore, even return 10 docs at a time. We had to restart SES to resolve the issue.
    1. What is throwing this error? Is it the amount of XML being returned?
    2. What is the maximum number of results we can get back at any one time? Is it based on the amount of data being returned or the number of attributes?
    We are running 10.1.8 with plans to upgrade soon.
    Thanks in advance.

    I know it may be hard to throw away all this code, but consider using the jakarta fileupload component.
    I think it would simplify your code down to
    // Create a factory for disk-based file items
    FileItemFactory factory = new DiskFileItemFactory();
    // Create a new file upload handler
    ServletFileUpload upload = new ServletFileUpload(factory);
    // Parse the request
    List /* FileItem */ items = upload.parseRequest(request);
    // Process the uploaded items
    Iterator iter = items.iterator();
    while (iter.hasNext()) {
        FileItem item = (FileItem) iter.next();
        if (item.isFormField()) {
            processFormField(item);
        } else {
            // item is a file.  write it
            File saveFolder = application.getRealPath("/file");          
            File uploadedFile = new File(saveFolder, item.getName());
            item.write(uploadedFile);
    }Most of this code was hijacked from http://jakarta.apache.org/commons/fileupload/using.html
    Check it out. It will solve your memory problem by writing the file to disk temporarily if necessary.
    Cheers,
    evnafets

  • Problem with java.lang.OutOfMemoryError

    hi
    i am developping a web application
    i am using jfreechart in my jsf application to generate statistic diagrams
    to update my diagrams i am calling the methode ChartUtilities.saveChartAsPNG(file1, chart, 400, 300, null) every 10 seconds
    my application become more and more slow and the cpnsommatio of memory is more and more important until getting this exception:
    javax.faces.el.EvaluationException: java.lang.OutOfMemoryError: Java heap space
         at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
         at javax.faces.component.UICommand.broadcast(UICommand.java:387)
         at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
         at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
         at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
         at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
         at org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
         at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at TimeoutFilter.doFilter(TimeoutFilter.java:64)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
         at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
         at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
         at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
         at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.OutOfMemoryError: Java heap space
         at java.awt.image.DataBufferInt.<init>(Unknown Source)
         at java.awt.image.Raster.createPackedRaster(Unknown Source)
         at java.awt.image.DirectColorModel.createCompatibleWritableRaster(Unknown Source)
         at java.awt.image.BufferedImage.<init>(Unknown Source)
         at org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1407)
         at org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1389)
         at org.jfree.chart.ChartUtilities.writeChartAsPNG(ChartUtilities.java:183)
         at org.jfree.chart.ChartUtilities.saveChartAsPNG(ChartUtilities.java:320)
         at SWIMLogStatistiques.generateChartMethod(SWIMLogStatistiques.java:98)
         at SWIMmoduleStatistiques.generateChartMethod(SWIMmoduleStatistiques.java:39)
         at ListModules.mesServicesAttributs(ListModules.java:199)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
         at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
         at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
         at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
         at javax.faces.component.UICommand.broadcast(UICommand.java:387)
         at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
         at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
         at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
         at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
         at org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
         at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    after doing some searches, i found that the solution is to change the memory allocated for the JVM but in my case, the memory consommed by my application is increasing along with time.
    i think that the problem is with:*ChartUtilities.saveChartAsPNG(file1, chart, 400, 300, null);*:does this instruction consume a lot of memory and how can i resolve thos problem?

    riadhhwajdii wrote:
    i am using jfreechart in my jsf application to generate statistic diagrams
    to update my diagrams i am calling the methode ChartUtilities.saveChartAsPNG(file1, chart, 400, 300, null) every 10 seconds
    my application become more and more slow and the cpnsommatio of memory is more and more important until getting this exception:This bit (slowing down over several cycles of the code)..and this bit:
    after doing some searches, i found that the solution is to change the memory allocated for the JVM but in my case, the memory consommed by my application is increasing along with time.(increasing memory simply delays the exception), are usually a pointer that you have a memory leak somewhere.
    i think that the problem is with:*ChartUtilities.saveChartAsPNG(file1, chart, 400, 300, null);*:does this instruction consume a lot of memory and how can i resolve thos problem?Take some heap dumps (especially when the out of memory occurs) and stick them in a memory analyser. Just because the exception is being thrown during saveChartAsPNG() does not mean that's the culprit. All that means is it was the final straw.

  • OSB Problem: java.lang.OutOfMemoryError: getNewTla

    Hi there,
    Yesterday I posted a problem related to the OSB console not loading and giving an error (<BEA-381951> JCA inbound request only invocation failed
    Since then I've looked harder at the problem and realised that the real problem was the following exception:
    ####<28/Jul/2010 11H16m BST> <Error> <Kernel> <Server> <AdminServerOsb> <[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <a7acfb4f5f216892:-3c87e2be:12a1882fb62:-8000-000000000001fc60> <1280312179687> <BEA-000802> <ExecuteRequest failed
    java.lang.OutOfMemoryError: getNewTla.
    java.lang.OutOfMemoryError: getNewTla
         at java.util.concurrent.ConcurrentHashMap$KeySet.iterator(ConcurrentHashMap.java:1169)
         at weblogic.socket.SocketMuxer.getSocketsIterator(SocketMuxer.java:610)
         at weblogic.socket.SocketMuxer$TimerListenerImpl.timerExpired(SocketMuxer.java:955)
         at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    This exception is occurring every time I make a request to the weblogic server.
    I can't find any explanation about this problem anywhere so I'm asking for some help.
    Best Regards,
    Daniel Alves

    sorry for interfering but this kind of issues should be accompanied by analysis done with JRockit Mission Control Runtime Analysis (Flight Recording)
    http://download.oracle.com/docs/cd/E15289_01/doc.40/e15070/toc.htm
    take also advantage of the oomdiagnostics flag of JRockit.
    JRockit contains WONDERFUL diagnostics tools, if you learn how to use them you are the King of Persia.
    unless you determine the cause it's very difficult to address it by trial and error. Besides, if (if!) you have a memory leak there is no point in changing the JVM parameters....

  • Getting java.lang.OutOfMemoryError: PermGen space

    Hi,
    In JCAPS5.1.1 after deploying my project, i am getting following error.
    #|2007-02-20T16:38:48.319+0530|SEVERE|IS5.1.1|STC.eWay.batch.com.stc.connector.batchadapter.system.BatchInboundWork|_ThreadID=50; ThreadName=Worker: 140;stacktrace-id=13;|Exception in BatchInboundWork, BatchInboundWork terminated, e=java.lang.OutOfMemoryError: PermGen space
    java.lang.OutOfMemoryError: PermGen space
    |#]
    Earlier also i have deployed projects but never
    faced this type of error.
    Please let me know Is there any work around to
    rectify this kind of OutOf memory error.
    Thanks
    Venkatesh.S
    Message was edited by:
    VenkateshSampoornam

    Hi moonsit !
    Yes, currently our PermSize is set to 384mb (-XX:MaxPermSize=384m).
    Hi Alan !
    Yes, we get the same conclusion, after deploy or redeploy projects we get the OOME, but I was expecting that SUN support resolve this issue and not use the stop/start as a way to fix that, since sometimes it will impact our production environment.
    I searched over internet and discover that some thirdpart libraries version has memory leaks. It's the case of apache commons-logging 1.0.6 and apache commons-beanutils 1.6. I found them in the lib directory of Integration Server in JCAPS 5.1.3 and may be there is more thinks like that. Both libraries has newer version with this issue fixed. Maybe SUN need to be adviced about that.
    Does anyone else found a way to fix that ? Or a workaround that we can do to avoid the restart of LH ?
    Thanks !
    Thiago

  • Java.lang.OutOfMemoryError: Failed to fork OS thread

    hello guys, how are you ?
    my platform
    win server 2003
    tomcat 5517
    jdk IBM SR2 1.5
    I'm having a problem I think since we migrated to IBM jdk 1.5.
    Jasper Reports and just Jasper reports is thorwing this exception randomly once a week and makes all the tomcat server go down.
    java.lang.OutOfMemoryError: Failed to fork OS thread
         at java.lang.Thread.startImpl(Native Method)
         at java.lang.Thread.start(Thread.java:963)
         at net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.start(JRThreadSubreportRunner.java:64)
         at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:546)I saw the same error when creating images for the report, but the error was in the same place, java.lang.Thread.startImpl(Native Method)any clue ? I cant find anything not even in google about this.
    thanks
    Rodrigo

    The problems was solved setting Xmx parameters
    for example, your OS has 3 gb RAM.
    your java processs is -Xmx1440m, that means almost 1.5 gb .
    ok. your process starts, it works for a while.... but at any moment after get that much memory it blows up saying Failed to fork OS thread.
    that is because, at least in windows, allows you to allocate as max the half of memory for a process, but you are not counting on java overhead. Then, if it tries to get more "permitted" memory it will blow up because the OS is not allowing to create new threads.
    my advice.
    1. if you want to allocate a lot of memory, use 40% as max of the total RAM of the OS (in windows) using Xmx params.
    2. also, tweak the parameter -XX:ThreadStackSize=128 to reduce it, the default is 512 and that is too much
    regards
    Rodrigo
    [www.rodrigoasensio.com|http://www.rodrigoasensio.com]

  • XML Publisher report ends in Warning with java.lang.OutOfMemoryError

    Hi,
    We are modifying the standard report Account Analysis Report (in Subledger Accounting) to create a custom report.
    When run wide open, it is ending in Warning with the error java.lang.OutOfMemoryError in OPP Log.
    We are on EBS 12.1.3. DB 11.2.0.3 and XML Publisher 5.6.3
    We have set the below parameters in the data definition:
    Use XML Publishers XSLT processor: True
    Enable Scalable feature of XSLT processor: True
    Enable XSLT Runtime optimization: True
    Also we have added these to the Data template:
      <property name="db_fetch_size" value="20" />
      <property name="scalable_mode" value="on" />
    On the concurrent program, we have this option set:
    -ms1024m -mx2048m
    Still, the program is ending in Warning and not producing output. Any pointers here?
    We can also see that the Temporary Directory is not able to be set on the data definition. Why is this?
    After setting the Temporary Directory from Administration page, we were able to set the temporary directory for this data definition, but that did not solve the iseue.

    Glad you have sorted this - note that the fnd_concurrent_requests table has the fields pp_Start_date and pp_end_date which will show how long post processing is taking.
    Good to a good idea to monitor this in relation to the setting you have made in the profile option Concurrent:OPP Timeout profile option though 3 hours should cover most things!!!!

  • Serious system error while executing the query: java.lang.OutOfMemoryError

    From ALSB, we are trying to insert records in a table, by calling the ALDSP webservice. It is working fine when the xml (ie., given as input to the ALDSP webservice) is small. But facing the following error when the input xml size is large.
    <ALDSP> <BEA-000000> <Product> <Serious system error while executing the query:
    {ld:ABC/Test}createTest:1
    java.lang.OutOfMemoryError: Java heap space
    We do not want to increase the heap size. Is there any other way we can solve this problem?

    In logical dataservice of ALDSP we have created a procedure called createTest, which is used to insert mulitple rows in the table. We have created a webservice for that logical DataService.
    Using the ALSB, we are calling the webservice -> createTest Operation and we are passing xml as input to that createTest function.
    Input xml:
    <ns1:createTest>
    <ns1:createTemps>
    <ns0:createTemp>
         <ns0:field1>1</ns0:field1>
              <ns0:field10>test1</ns0:field10>
    </ns0:createTemp>                
    <ns0:createTemp>
         <ns0:field1>2</ns0:field1>
              <ns0:field10>test2</ns0:field10>
    </ns0:createTemp>
         </ns1:createTemps>     
    </ns1:createTest>
    each ns0:createTemp represent a row that need to be inserted in the table.
    When the number of ns0:createTemp is less ( when the number of rows that need to be inserted is less) then no problem occurs, it is getting inserted properly. But when there are more number of ns0:createTemp then we are getting the following error
    <ALDSP> <BEA-000000> <Product> <Serious system error while executing the query:
    {ld:ABC/Test}createTest:1
    java.lang.OutOfMemoryError: Java heap space

Maybe you are looking for