Increasing Heap Space programatically

Dear Experts,
Am using JDev 11.1.1.5.0. In my project am running a java class (testproduct.class) with main(), to generate excel file from Oracle Database.
Am passing a Query in my java code as shown below,
select * from testproduct where rownum<=100000;
But, it shows.
java.lang.OutOfMemoryError: Java heap space
How to increase the heap space through program. (i.e) How to increase my heapspace in (testproduct.class) code
-Thanks

Thanks Timo,
I use JDBC in my code. My code is,
public class Excel{
    public static void main(String[]args) throws Exception{
        try {
            Excel cexl = new Excel();
            cexl.Pass_Params(args[0], args[1], args[2],args[3], args[4]).get("Query");
        } catch (OutOfMemoryError e) {
            // TODO: Add catch code
            System.out.print("heap");
    public static HashMap Pass_Params(
            String url, String user, String password, String slno, String path) throws Exception{
        String val="Error";      
        try {
            Connection connection = null;
            Class.forName("oracle.jdbc.driver.OracleDriver");
            connection = DriverManager.getConnection(url, user, password);
            Statement s1 = connection.createStatement();
            ResultSet rs1 =
                s1.executeQuery("SELECT QRY FROM TEST1 WHERE SNO=" + slno);        
            String p = null;
            String filename = path;
            if (rs1.next()) {
                p = rs1.getString(1);
            ResultSet result = s1.executeQuery(p);
            HSSFWorkbook hwb = new HSSFWorkbook();
            HSSFSheet sheet = hwb.createSheet("new sheet");
            ResultSetMetaData rsmd = result.getMetaData();
            int cols = rsmd.getColumnCount();
            int vals = 0;
            HSSFRow rowhead = sheet.createRow(0);
            for (int i = 1; i <= cols; i++) {
                rowhead.createCell((int)i -
                                   1).setCellValue(rsmd.getColumnName(i));
            HSSFRow row;
            while (result.next()) {
                vals = vals + 1;
                row = sheet.createRow(vals);
                for (int i = 1; i <= cols; i++) {
                    row.createCell((int)i -
                                   1).setCellValue(result.getString(rsmd.getColumnName(i)));
            FileOutputStream fileOut = new FileOutputStream(filename);         
            hwb.write(fileOut);
            fileOut.close();
            System.out.println("done");
            System.out.println("Your excel file has been generated!");
            Process proc =
                Runtime.getRuntime().exec(" cmd /c start " + filename );
            HashMap map = new HashMap();
  val="done";         
            return map;
        } catch (Exception ex) {
            // TODO: Add catch code
            val=new String(ex.getMessage());
        finally {
                System.out.print(val);
        return null;

Similar Messages

  • Out of bounds exception although increasing heap space

    Hello,
    In my java application, there is a gif file with the size 6000 X 3500 . This file is 536 KB and i use this file with scroll bar.
    My question is that although I increased heap space to 512, it still keep going to give "out of bounds" exception when i try to set new dimention to the frame bigger than (800, 1000).
    How can I use my gif file with bigger frame?

    There is no such exception.
    Are you talking about ArrayIndexOutOfBoundsException?
    OutOfMemoryError?
    Something else?

  • Increase Heap Space on Oracle UCM 10g

    Hey everyone,
    I need to increase the heap space for my UCM, but I have no idea how to do it. I thought I had to edit intradoc.cfg, but there are no memory properties even in that file.
    Any help with this would be awesome.
    Thanks!

    Hi,
    Yes, it indeed goes to intradoc.cfg
    JAVA_MAX_HEAP_SIZE=[Size in megabytes]
    Restart the CS post this.

  • "java.lang.OutOfMemoryError: Java heap space"  while trying to read Excel.

    Hi Experts,
    Here is my query. I'm trying to upload excel data into database table. This excel contains more than 20000 records. I'm storing this data in a vector after reading it & passing this vector as a parameter to another method(not mentioned in the below code) which writes into the database. The code works for records <4000, but fails to read beyond that & throws exception as below.
    HTTP Status 500 -
    type Exception report
    message
    description The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    org.apache.jasper.JasperException: Java heap space
         org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:433)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause
    javax.servlet.ServletException: Java heap space
         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
         org.apache.jsp.readexcelsap_jsp._jspService(readexcelsap_jsp.java:365)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause
    java.lang.OutOfMemoryError: Java heap space
    Below is the code for reference. Kindly Help me in getting this heap space error rectified or suggest me alternate ways.
    I tried increasing Heap space as googled but in vain.
    <%!
    private Vector readExcelSheet(String uploadedFilePath, int sheetNo) throws IOException
         Vector allRowInfo = null;
            try
                HSSFSheet sheet= getWorkSheet(uploadedFilePath,sheetNo);
                //System.out.println(uploadedFilePath);
                //System.out.println(sheetNo);
                //System.out.println("--Sheet--"+sheet);
                //System.out.println("--Sheet--"+sheet.getLastRowNum());
                if(sheet!=null)
                allRowInfo = new Vector();
                for(int i=0;i<=sheet.getLastRowNum();i++)
                    HSSFRow row= sheet.getRow(i);
                    Vector eachRowInfo = new Vector();
                    for(short j=0;j<row.getLastCellNum();j++)
                        eachRowInfo.add(getCellContents(row.getCell(j)));
                        //System.out.println("--"+row.getCell(j));
                    allRowInfo.add(eachRowInfo);
                else
                     allRowInfo = null;
                //return allRowInfo;
            catch (FileNotFoundException ex)
                 System.out.println("-- Error in reading--getWorkSheet -- 1--"+ex);
                 allRowInfo = null;
            catch (IOException ex)
                 System.out.println("-- Error in reading--getWorkSheet-- 2 --"+ex);
                 allRowInfo = null;
            catch (IndexOutOfBoundsException ex)
                 System.out.println("-- Error in reading--getWorkSheet-- 2 --"+ex);
                 allRowInfo = null;
            catch (NullPointerException ex)
                 System.out.println("-- Error in reading--getWorkSheet --"+ex);
                 allRowInfo = null;
            catch(Exception e)
                System.out.println(e.getMessage());
                e.printStackTrace();
                 allRowInfo = null;
            return allRowInfo;
    %>
    <%!
    private HSSFSheet getWorkSheet(String uploadedFilePath, int sheetNo) throws IOException
            HSSFSheet sheet = null;
            try
                FileInputStream inputStream=new FileInputStream(uploadedFilePath);
                POIFSFileSystem poisFile=new POIFSFileSystem(inputStream);
                HSSFWorkbook workBook= new HSSFWorkbook(poisFile);
                sheet = workBook.getSheetAt(sheetNo);
            catch (FileNotFoundException ex)
                 System.out.println("-- Error in reading--getWorkSheet --"+ex);
                 sheet = null;
            catch (IOException ex)
                 System.out.println("-- Error in reading--getWorkSheet --"+ex);
                 sheet = null;
            catch (IndexOutOfBoundsException ex)
                 System.out.println("-- Error in reading--getWorkSheet --"+ex);
                 sheet = null;
            catch (NullPointerException ex)
                 System.out.println("-- Error in reading--getWorkSheet --"+ex);
                 sheet = null;
            catch(Exception e)
                System.out.println(e.getMessage());
                e.printStackTrace();
                sheet = null;
             return sheet;
    %>
    <%!
    public String getCellContents(HSSFCell cell)
            String cellValue="";
            String cellValue1="";
            if(cell!=null)
                 int cellType= cell.getCellType();
                if(cellType==HSSFCell.CELL_TYPE_NUMERIC)
                    cellValue=(float)cell.getNumericCellValue()+"";           
                if(cellType==HSSFCell.CELL_TYPE_STRING)
                     cellValue1=cell.getStringCellValue();
                     StringBuffer sb = new StringBuffer();
                     for(int i = 0; i < cellValue1.length(); i++)
                            sb.append(cellValue1.charAt(i));
                         if(cellValue1.charAt(i)=='\'')
                              sb.append('\'');
                     cellValue = sb.toString();
           return cellValue;
    %>
    <html>
    <body>
    <%
         String file_Name="Myexcel.xls";
         String path = "D://Test Upload//"+file_Name;
         Vector list = readExcelSheet(path,0);
    </html>
    </body>Regards
    Venky
    Edited by: Venky_86 on Jun 17, 2009 6:05 AM

    HOW did you increase the heap space? As that is the only solution you have in this case really.
    It is a known fact that POI can use up a lot of memory for big spreadsheets. If at all possible, I would try to switch to plain text comma separated files / tab delimited files. If you cannot do that, I would try to put a size restriction on the sheets that your application will process to get rid of the heap space risk. A sheet can contain 20000 records, or four sheets can contain 5000 records; in both cases you process the exact same data, but at only 25% of the total memory usage.

  • Problem increasing heap size using Java Control Panel

    I am running a web-based bioinformatics package which uses a Java applet as the client application. It mostly works fine, but some large clustering processes don't complete, they just cycle endlessly. The user manual advises increasing heap space "by entering the following command in the Java Control Panel or Java Plug-in dialog: -Xms128M -Xmx256M." I can open the Java Control Panel OK and enter the necessary command in the Java Runtime Parameters box, but after clicking OK then Apply, the Runtime Parameters box is empty again and there is no increase in the heap size allocation. In other words, the change doesn't take effect.
    I have already tried: adjusting one parameter at a time (max heap size first, then min); changing uppercase to lowercase M (-Xmx256m); restarting the browser after the change; rebooting my PC - none of these has helped.
    Technical details: it's Java 6 standard edition, build 1.6.0_10-rc-b28; browser is Internet Explorer 7; operating system is Vista (Service Pack 1); PC is a 2.4 GHz processor with 2 GB RAM (so I have plenty available to allocate to Java). I have local admin privilege on my PC.
    Help would be much appreciated, as I really need to complete these cluster analyses. I'm a biologist not a developer, so ideally I need a solution that doesn't involve major programming, though I'm OK with registry edits and use of the command line. Thanks in advance.

    The failure to retain the parameters is a bug, per hdong in this [Java,net thread|http://forums.java.net/jive/thread.jspa?threadID=44540&tstart=0] dated August 14
    "I did a little more research and found out that the problem is only with "-rc" or "-beta" versions of plugin. When 1.6.0_10 is finally released, the version string will be "1.6.0_10". Plugin works fine to set/get jvm parameters when version string is "1.6.0_10".
    I am surprised that this issue was not discovered earlier. It was probably because the internal test binary use "1.6.0_10" as version string.
    Yeah, it is a bug that will affect many manny developers. It will be fixed as soon as possible."

  • Can you alter the JVM heap space size for all Windows users?

    Hi,
    I have used the "-Xmx" option to increase the Java Heap space for my Java application. This works fine, but all other users on my system still have the default heap space setting and I want them to have use an increased heap space as well. I cannot alter the JVM heap space at the command line since our Java application is started via an ActiveX bridge from a Windows application.
    So far I have found one potential, but not really good solution; I have figured out that I can copy the deployment.properties file containing the altered JVM heap setting from the "Application Data\Sun\Java\Deployment" folder in my own Windows "Documents and Settings" folder to the same folder of another user. However, this is not a really good solution since we are running a system with about 60 users and often new user accounts are created and sometimes people forget to copy the deployment.properties file.
    Does anyone know a better solution. I've tried to search the Windows registry or the JRE files for a default JVM heap space setting but I can't find it anywhere. Still on some systems the default is 64Mb and on others 96Mb, so I guess there must be a setting somewhere?

    The following is my eclipse.ini:
    -vmargs
    -Xms256m
    -Xmx512m
    -Dfuego.fstudio=true
    -DprodMode=preProduction
    -Dbea.home=C:\bea\albpm6.0\studio\..
    -Djava.endorsed.dirs=""
    -XX:PermSize=256M
    -XX:MaxNewSize=256M
    -XX:MaxPermSize=1024M
    but i think this configuration just effect the eclipse, not embed bpm engine. I also change the engine preference, increase the heap size, but engine crash as before.
    I want to change the jvm from jdk to jrockit, i hope any suggest.

  • How to increase the Heap space of Jdeveloper for about more than 512 MB?

    When starting JDeveloper, the application within JDeveloper is throwing the error message:
    "could not reserve enough space for object heap"
    and a windows popup with the following error message:
    "Unable to create an instance of the Java Virtual Machine Located at path: ..\..\jdk\jre\bin\client\jvm.dll "
    To resolve these issues, i know that adding the following in ide.conf , jdev.conf will help.
    AddVMOption -XX:MaxPermSize=512M
    AddVMOption -Xmx512M
    AddVMOption -Xms512M
    I have got 10 GB of RAM in my desktop machine and virtual memory of 15 GB (page size). I am not able to increse the heap space of Jdeveloper for about more than 512MB. This is really frustrating..I had to restart my jdevloper after 3 or 4 deployments.....Has anyone tried success in increasing the heap space in jdeveloper for about 2 GB?
    Regards
    Prasath.C

    Yes, i know that -XX:MaxPermSize has nothing to do with Heap Memory. I Just pasted all my configuration settings to know if some thing or the other has caused the issue.... After hearing few people who increased the heap space to more than 512m , i played with those settings again and figured out few things...Mine is Jdeveloper 11.1.1.4, 64 bit Windows 7 environment, 64 bit Java/ JDK.
    First, i was deceived by one suggestion in forum that, keeping max and min heap memory to same size always will yield in good performance...From that time on wards, i was always increasing both and was never able to move more than 512m..But this time, i kept the min memory as constand and kept on changing the max memory ..
    Jdev.conf
    AddVMOption -XX:MaxPermSize=512M
    AddVMOption -Xmx972M (I was never able to increase more than this size, though i have around 10GB RAM, if not Jdev doesnt startup)
    AddVMOption -Xms512M
    Ide.conf
    AddVMOption -Xmx2048M (here i was able to increase)
    AddVMOption -Xms512M
    But even then, i was not seeing my changed settings at the time of deployment...
    starting weblogic with Java version:
    java version "1.6.0_21"
    Java(TM) SE Runtime Environment (build 1.6.0_21-b51)
    Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode)
    Starting WLS with line:
    C:\Oracle\MIDDLE~1\JDK160~1\bin\java -client -Xms512m -Xmx512m -XX:MaxPermSize=512m -Dweblogic.Name=DefaultServer ..........
    Then i changed again into
    setDomainEnv.cmd of my default domain
    set USER_MEM_ARGS=-Xms512m -Xmx2048m -XX:MaxPermSize=512m
    Then i stared my deployment...this time i could see a real boost in deployment...and my page was launched in a fraction of minute..
    tarting weblogic with Java version:
    java version "1.6.0_21"
    Java(TM) SE Runtime Environment (build 1.6.0_21-b51)
    Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode)
    Starting WLS with line:
    C:\Oracle\MIDDLE~1\JDK160~1\bin\java -client -Xms512m -Xmx2048m -XX:MaxPermSize=512m -Dweblogic.Name=DefaultServer ..........
    This is my working configuration....Thanks guys for your replies.....
    Regards
    Prasath.C
    Edited by: Prasath C on 05-Aug-2011 04:41

  • How to increase the heap space size -is there any parameter to pass to JVM

    I created a memory buffering module which can be use to buffer log records and write to hard disk.disk writing is done by a separate thread so the main application won't be delayed. and memory for new errors are allocated dynamically. when i test this it gave this exception Exception in thread "Thread-62" java.lang.OutOfMemoryError: Java heap space then I test 100,000 of log records at a time and sleep the thread for 1 second to let the garbage collector do its job this works fine. but when i increase the log records count further it gave the above error. so i want to know whether is there a way to give the heap memory size to the VM as a parameter before running it.

    I created a memory buffering module which can be use to buffer log records and write to hard disk.disk writing is done by a separate thread so the main application won't be delayed. and memory for new errors are allocated dynamically. when i test this it gave this exception Exception in thread "Thread-62" java.lang.OutOfMemoryError: Java heap space then I test 100,000 of log records at a time and sleep the thread for 1 second to let the garbage collector do its job this works fine. but when i increase the log records count further it gave the above error. so i want to know whether is there a way to give the heap memory size to the VM as a parameter before running it.

  • How to increase java heap space on BIEE 10.1.3.3.1

    Hi All,
    I am using BIEE 10.1.3.3.1.
    while doing bursting i am getting java heap space error. how can i increase java heap space.
    Please anyone explain how to increase .. its very urgent
    Regards

    Yes, but I have not one, but TWO configurations.
    One configuration named StateTEDSTest points at the DataSource named teds_proxy_tedsdev_dasis8. Another named StateTEDSProd points at the DataSource named teds_proxy_teds_dasis8.
    What you seem to be saying is that I should only have one configuration, point it at a DataSource named, say, teds_proxyDS, then make teds_proxyDS reference the test database on the test application and the production database on the production application. I agree that that would probably work, but it negates any benefit of being able to define more than one configuration.
    What I asked is, how do I tell one deployment to use the configuration named StateTEDSTest, and another to use the configuration named StateTEDSProd?
    Looks like I'm not the first to ask this - see this thread:
    basic deployment question
    Unfortunately, no answer there either.

  • JBuilder increase Java heap space

    How can I increase Java heap space in JBuilder ?

    devboris wrote:
    How can I increase Java heap space in JBuilder ?Seriously. The third result on Google using search terms identical to the subject of your post. [http://javahowto.blogspot.com/2006/08/set-jvm-options-in-jbuilder.html]
    - Saish

  • Lock Timeouts and Heap Space Exhaustion

    I'm having some trouble figuring out the best way to handle resource constraints in my application. Generally speaking, the application works well after starting for about a day or so, but inevitably starts generating "Lock timeout" messages and eventually runs out of heap space.
    Here is the main entity class:
    http://github.com/justindthomas/flower_as/blob/master/src/java/name/justinthomas/flower/analysis/statistics/StatisticalInterval.java
    Here is a supporting, persistent class:
    http://github.com/justindthomas/flower_as/blob/master/src/java/name/justinthomas/flower/analysis/statistics/StatisticalFlow.java
    This is the data accessor:
    http://github.com/justindthomas/flower_as/blob/master/src/java/name/justinthomas/flower/analysis/statistics/StatisticsAccessor.java
    And here is the class that controls the insertion and retrieval of data:
    http://github.com/justindthomas/flower_as/blob/master/src/java/name/justinthomas/flower/analysis/statistics/StatisticsManager.java
    The general flow is that a netflow packet is received from a sensor and the StatisticsManager normalizes the flow as it is inserted into the database. The normalization converts the summarized flow into several "resolutions." For example, one resolution might be 5000 ms. So the StatisticsManager takes the flow's end time/5000 - start time/5000 and divides the volume by the result and inserts that data into the database. It sounds kind of confusing, but results in a dataset that allows me to query for netflow activity for any time frame.
    It also means that the database is queried as it is written to; existing data is updated more frequently than new data is written.
    Regardless, Sleepycat seems to be holding on to more data than it needs to. Once an interval has passed (maybe 5 minutes or so), it is unlikely to be accessed again until queried to create charts. However, the memory usage grows out of control despite the lack of necessity for keeping all but recently entered entries in cache.
    This is how the trouble generally starts (note that I've increased the timeout to 15000 ms to try to accommodate for longer wait times, but that just seems to delay the onset of the issue by a day or so):
    [#|2010-10-23T13:46:00.854-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=64;_ThreadName=Thread-1;|addStatisticalSeconds Failed: (JE 4.0.104) Lock expired. Locker 30264205 -1_pool-6-thread-8_ThreadLocker: waited for lock on database=persist#Statistics#name.justinthomas.flower.analysis.statistics.StatisticalInterval LockAddr:32426808 node=17057517 type=READ grant=WAIT_NEW timeoutMillis=15000 startTime=1287866745448 endTime=1287866760795
    Owners: [<LockInfo locker="29616818 -1_pool-6-thread-5_ThreadLocker" type="WRITE"/>]
    Waiters: [<LockInfo locker="7246740 -1_pool-6-thread-6_ThreadLocker" type="READ"/>, <LockInfo locker="26940477 -1_pool-6-thread-2_ThreadLocker" type="WRITE"/>, <LockInfo locker="5099094 -1_pool-6-thread-4_ThreadLocker" type="READ"/>]
    |#]
    [#|2010-10-23T15:00:41.343-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=65;_ThreadName=Thread-1;|addStatisticalSeconds Failed: (JE 4.0.104) Lock expired. Locker 14184769 -1_pool-6-thread-1_ThreadLocker: waited for lock on database=persist#Statistics#name.justinthomas.flower.analysis.statistics.StatisticalInterval LockAddr:32730917 node=17057517 type=READ grant=WAIT_NEW timeoutMillis=15000 startTime=1287871223679 endTime=1287871241341
    Owners: [<LockInfo locker="23975039 -1_pool-6-thread-8_ThreadLocker" type="WRITE"/>]
    Waiters: [<LockInfo locker="19650664 -1_pool-6-thread-6_ThreadLocker" type="READ"/>]
    |#]
    [#|2010-10-23T15:32:13.090-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=66;_ThreadName=Thread-1;|addStatisticalSeconds Failed: (JE 4.0.104) Lock expired. Locker 17937364 -1_pool-6-thread-7_ThreadLocker: waited for lock on database=persist#Statistics#name.justinthomas.flower.analysis.statistics.StatisticalInterval LockAddr:20265315 node=17057517 type=WRITE grant=WAIT_NEW timeoutMillis=15000 startTime=1287873113904 endTime=1287873133089
    Owners: [<LockInfo locker="3251671 -1_pool-6-thread-1_ThreadLocker" type="WRITE"/>]
    Waiters: [<LockInfo locker="32174859 -1_pool-6-thread-8_ThreadLocker" type="READ"/>, <LockInfo locker="33186148 -1_pool-6-thread-4_ThreadLocker" type="WRITE"/>, <LockInfo locker="17825718 -1_pool-6-thread-2_ThreadLocker" type="READ"/>]
    |#]
    [#|2010-10-23T15:32:13.096-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=64;_ThreadName=Thread-1;|addStatisticalSeconds Failed: (JE 4.0.104) Lock expired. Locker 32174859 -1_pool-6-thread-8_ThreadLocker: waited for lock on database=persist#Statistics#name.justinthomas.flower.analysis.statistics.StatisticalInterval LockAddr:20265315 node=17057517 type=READ grant=WAIT_NEW timeoutMillis=15000 startTime=1287873118064 endTime=1287873133092
    Owners: [<LockInfo locker="3251671 -1_pool-6-thread-1_ThreadLocker" type="WRITE"/>]
    Waiters: [<LockInfo locker="33186148 -1_pool-6-thread-4_ThreadLocker" type="WRITE"/>, <LockInfo locker="17825718 -1_pool-6-thread-2_ThreadLocker" type="READ"/>]
    |#]
    [#|2010-10-23T15:32:13.367-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=67;_ThreadName=Thread-1;|addStatisticalSeconds Failed: (JE 4.0.104) Lock expired. Locker 33186148 -1_pool-6-thread-4_ThreadLocker: waited for lock on database=persist#Statistics#name.justinthomas.flower.analysis.statistics.StatisticalInterval LockAddr:20265315 node=17057517 type=WRITE grant=WAIT_NEW timeoutMillis=15000 startTime=1287873118366 endTime=1287873133366
    Owners: [<LockInfo locker="3251671 -1_pool-6-thread-1_ThreadLocker" type="WRITE"/>]
    Waiters: [<LockInfo locker="17825718 -1_pool-6-thread-2_ThreadLocker" type="READ"/>, <LockInfo locker="25145711 -1_pool-6-thread-6_ThreadLocker" type="READ"/>, <LockInfo locker="5544029 -1_pool-6-thread-5_ThreadLocker" type="READ"/>]
    |#]
    [#|2010-10-23T15:33:14.030-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=68;_ThreadName=Thread-1;|addStatisticalSeconds Failed: (JE 4.0.104) Lock expired. Locker 31602565 -1_pool-6-thread-5_ThreadLocker: waited for lock on database=persist#Statistics#name.justinthomas.flower.analysis.statistics.StatisticalInterval LockAddr:11219992 node=17057517 type=WRITE grant=WAIT_NEW timeoutMillis=15000 startTime=1287873175916 endTime=1287873194019
    Owners: [<LockInfo locker="27649147 -1_pool-6-thread-2_ThreadLocker" type="WRITE"/>]
    Waiters: [<LockInfo locker="3895581 -1_pool-6-thread-7_ThreadLocker" type="WRITE"/>, <LockInfo locker="8345933 -1_pool-6-thread-8_ThreadLocker" type="WRITE"/>, <LockInfo locker="12576013 -1_pool-6-thread-6_ThreadLocker" type="WRITE"/>, <LockInfo locker="5695501 -1_pool-6-thread-1_ThreadLocker" type="WRITE"/>]
    |#]
    [#|2010-10-23T15:33:23.334-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=64;_ThreadName=Thread-1;|addStatisticalSeconds Failed: (JE 4.0.104) Lock expired. Locker 8345933 -1_pool-6-thread-8_ThreadLocker: waited for lock on database=persist#Statistics#name.justinthomas.flower.analysis.statistics.StatisticalInterval LockAddr:11219992 node=17057517 type=WRITE grant=WAIT_NEW timeoutMillis=15000 startTime=1287873184851 endTime=1287873203333
    Owners: [<LockInfo locker="3895581 -1_pool-6-thread-7_ThreadLocker" type="WRITE"/>]
    Waiters: [<LockInfo locker="12576013 -1_pool-6-thread-6_ThreadLocker" type="WRITE"/>, <LockInfo locker="5695501 -1_pool-6-thread-1_ThreadLocker" type="WRITE"/>, <LockInfo locker="13327115 -1_pool-6-thread-4_ThreadLocker" type="READ"/>, <LockInfo locker="11939897 -1_pool-6-thread-5_ThreadLocker" type="READ"/>]
    |#]
    [#|2010-10-23T15:33:23.344-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=69;_ThreadName=Thread-1;|addStatisticalSeconds Failed: (JE 4.0.104) Lock expired. Locker 12576013 -1_pool-6-thread-6_ThreadLocker: waited for lock on database=persist#Statistics#name.justinthomas.flower.analysis.statistics.StatisticalInterval LockAddr:11219992 node=17057517 type=WRITE grant=WAIT_NEW timeoutMillis=15000 startTime=1287873184893 endTime=1287873203343
    Owners: [<LockInfo locker="3895581 -1_pool-6-thread-7_ThreadLocker" type="WRITE"/>]
    Waiters: [<LockInfo locker="5695501 -1_pool-6-thread-1_ThreadLocker" type="WRITE"/>, <LockInfo locker="13327115 -1_pool-6-thread-4_ThreadLocker" type="READ"/>, <LockInfo locker="11939897 -1_pool-6-thread-5_ThreadLocker" type="READ"/>]
    |#]
    Those errors go on and on and on, until I eventually see this:
    [#|2010-10-23T17:37:29.876-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=71;_ThreadName=Thread-1;|Exception in thread "ContainerBackgroundProcessor[StandardEngine[com.sun.appserv]]" |#]
    [#|2010-10-23T17:37:34.915-0700|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=23;_ThreadName=Thread-1;|In main loop, we have serious trouble: java.lang.OutOfMemoryError: Java heap space|#]
    [#|2010-10-23T17:37:56.516-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=66;_ThreadName=Thread-1;|Exception in thread "pool-6-thread-7" |#]
    [#|2010-10-23T17:39:11.060-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=23;_ThreadName=Thread-1;|Exception in thread "{felix.fileinstall.poll=5000, felix.fileinstall.bundles.new.start=true, service.pid=org.apache.felix.fileinstall.fd8877ce-71aa-41d2-8ddc-15ce996cde1b, felix.fileinstall.dir=/opt/glassfishv3/glassfish/domains/domain1/autodeploy/bundles/, felix.fileinstall.filename=org.apache.felix.fileinstall-autodeploy-bundles.cfg, service.factorypid=org.apache.felix.fileinstall, felix.fileinstall.debug=1}" |#]
    [#|2010-10-23T17:39:11.070-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=66;_ThreadName=Thread-1;|java.lang.OutOfMemoryError: Java heap space
         at java.util.IdentityHashMap.init(IdentityHashMap.java:261)
         at java.util.IdentityHashMap.<init>(IdentityHashMap.java:207)
         at com.sleepycat.je.utilint.IdentityHashMap.<init>(IdentityHashMap.java:25)
         at com.sleepycat.je.cleaner.LocalUtilizationTracker.<init>(LocalUtilizationTracker.java:39)
         at com.sleepycat.je.recovery.Checkpointer.flushDirtyNodes(Checkpointer.java:665)
         at com.sleepycat.je.recovery.Checkpointer.syncDatabase(Checkpointer.java:604)
         at com.sleepycat.je.dbi.DatabaseImpl.sync(DatabaseImpl.java:977)
         at com.sleepycat.je.dbi.DatabaseImpl.handleClosed(DatabaseImpl.java:863)
         at com.sleepycat.je.Database.closeInternal(Database.java:458)
         at com.sleepycat.je.Database.close(Database.java:314)
         at com.sleepycat.je.SecondaryDatabase.close(SecondaryDatabase.java:331)
         at com.sleepycat.persist.impl.Store.closeDb(Store.java:1454)
         at com.sleepycat.persist.impl.Store.close(Store.java:1059)
         at com.sleepycat.persist.EntityStore.close(EntityStore.java:630)
         at name.justinthomas.flower.analysis.persistence.FlowReceiver.addFlow(FlowReceiver.java:94)
         at name.justinthomas.flower.analysis.persistence.FlowReceiver.addFlow(FlowReceiver.java:65)
         at name.justinthomas.flower.collector.FlowWorker.parseData(FlowWorker.java:382)
         at name.justinthomas.flower.collector.FlowWorker.v9(FlowWorker.java:111)
         at name.justinthomas.flower.collector.FlowWorker.run(FlowWorker.java:61)
         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
         at java.lang.Thread.run(Thread.java:636)
    |#]
    [#|2010-10-23T17:39:11.124-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=23;_ThreadName=Thread-1;|java.lang.OutOfMemoryError: Java heap space
    |#]
    [#|2010-10-23T17:39:11.141-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=72;_ThreadName=Thread-1;|Exception in thread "pool-6-thread-3" |#]
    [#|2010-10-23T17:39:11.144-0700|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=72;_ThreadName=Thread-1;|java.lang.OutOfMemoryError: Java heap space
    |#]
    It's very frustrating, because things run so well at first and then just deteriorate into a resource nightmare. Any suggestions would be welcome. The application is running with 3 CPU cores and 2GB RAM.
    Edited by: justindthomas on Oct 23, 2010 7:19 PM: I initially tried to use the forum's "URL" mechanism, but that doesn't seem to work worth anything, so I un-did it.

    I've disabled that thread for now. While debugging that, I ran into a SecondaryIntegrityException and I read that I shouldn't use secondary indexes without also using transactions. I enabled transactional processing, but the locking issues grew far worse. I opted to find ways to not use secondary indexes instead.You're right that with secondaries it is important to use txns. But I'm not sure why you're having such severe locking problems with txns. Were you using a txn with a cursor, to perform a scan? If so, I can probably suggest ways of doing that without the txn, if you can describe what you're doing and/or point me to your source code. Or, perhaps you've decided not to use secondaries, and this isn't an issue anymore?
    --mark                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • BI XML Publiser Issue java langOutOfMemoryError Java heap space

    Hi
    I am getting 'java.lang.OutOfMemoryError: Java heap space' error in XML publisher report. Just i am running 15MB data report still its giving OutOfmemory issue.
    Please help on this.
    [5/22/12 9:08:00 AM] [98639:RT12903275] XML Publisher post-processing action complete.
    [5/22/12 9:08:01 AM] [98639:RT12903275] Completed post-processing actions for request 12903275.
    [5/22/12 10:20:15 AM] [OPPServiceThread1] Post-processing request 12903281.
    [5/22/12 10:20:19 AM] [98639:RT12903281] Executing post-processing actions for request 12903281.
    [5/22/12 10:20:19 AM] [98639:RT12903281] Starting XML Publisher post-processing action.
    [5/22/12 10:20:19 AM] [98639:RT12903281]
    Template code: XXGFS_AP_APMCGRN
    Template app: XXGFS_AP
    Language: en
    Territory: US
    Output type: EXCEL
    Exception: java.lang.OutOfMemoryError: Java heap space
    java.lang.OutOfMemoryError: Java heap space
         at oracle.jdbc.dbaccess.DBItem.allocBuffer(DBItem.java:204)
         at oracle.jdbc.dbaccess.DBItem.allocBuffer(DBItem.java:232)
         at oracle.jdbc.dbaccess.DBDataSetImpl._allocItemsAndBuffers(DBDataSetImpl.java:300)
         at oracle.jdbc.dbaccess.DBDataSetImpl._allocDataAndItems(DBDataSetImpl.java:261)
         at oracle.jdbc.dbaccess.DBDataSetImpl.setType(DBDataSetImpl.java:2068)
         at oracle.jdbc.dbaccess.DBDataSetImpl.setType(DBDataSetImpl.java:1951)
         at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterBytes(OracleCallableStatement.java:278)
         at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:402)
         at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:477)
         at oracle.apps.fnd.cp.gsm.GenCartComm.getQueueMessage(GenCartComm.java:185)
         at oracle.apps.fnd.cp.gsf.GSMStateMonitor.waitForNextEvent(GSMStateMonitor.java:95)
         at oracle.apps.fnd.cp.gsf.GSMServiceController.mainLoop(GSMServiceController.java:236)
         at oracle.apps.fnd.cp.gsf.BaseServiceController.run(BaseServiceController.java:71)
         at java.lang.Thread.run(Thread.java:619)
    Exception in thread "Cache Stats Writer" java.lang.OutOfMemoryError: GC overhead limit exceeded
    Exception in thread "OPPAQMON:98639" java.lang.OutOfMemoryError: Java heap space
         at oracle.jdbc.dbaccess.DBItem.allocBuffer(DBItem.java:204)
         at oracle.jdbc.dbaccess.DBItem.allocBuffer(DBItem.java:232)
         at oracle.jdbc.dbaccess.DBDataSetImpl._allocItemsAndBuffers(DBDataSetImpl.java:300)
         at oracle.jdbc.dbaccess.DBDataSetImpl._allocDataAndItems(DBDataSetImpl.java:261)
         at oracle.jdbc.dbaccess.DBDataSetImpl.setType(DBDataSetImpl.java:2068)
         at oracle.jdbc.dbaccess.DBDataSetImpl.setType(DBDataSetImpl.java:1951)
         at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterBytes(OracleCallableStatement.java:278)
         at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:402)
         at oracle.apps.fnd.cp.opp.OPPAQMonitor.waitForMessage(OPPAQMonitor.java:423)
         at oracle.apps.fnd.cp.opp.OPPAQMonitor.run(OPPAQMonitor.java:113)
         at java.lang.Thread.run(Thread.java:619)
    [5/22/12 10:24:36 AM] [UNEXPECTED] [98639:RT12903281] java.lang.OutOfMemoryError: Java heap space

    user972966 wrote:
    There are two tables (tableA, tableB) in two different databases. They both have almost same schema/structure. There is mapping between tables on their columns.
    I need to develop a Java application to compare data value between these two tables for a time frame (for example one day) and find missing records or mismatch data.
    The volume of data, even for one day, is huge; almost 70M, 100M. Do you mean this many records? or this many MB. either way they are not that big for Java. If you have collections of up to 2 billion entries, you won't have a problem.
    >
    I have tried to use Thread to split the comparison process in 10 threads. Each thread is fetching portion of data from both tables (for example 7M each) and processing portion them. The issue that I am facing is, I am getting following exception after running:I would suggest you get the program working with one thread first. You will find this is simpler and possibly even faster. Having 10 threads isn't guarenteed to be faster.
    >
    To compare the data, I am fetching data from tableA and add it into List<MyDataObject> listA (the MyDataObject represent a one row data. It is a java bean) and then I am fetching data from tableB and add it into List<MyDataObject> listB
    And then I compare the lists.
    It seems there is limitation in size of List and I cannot add many elements to a List object, it’ll throws Out of Memory exception. The limit is 2^31-1. However an Out of Memory error means what it says. You are out of heap space, so you need to either increase it, or use less memory.
    >
    This method works for small volume, but for large one I get that exceptionIs there any reason you cannot divide the problem so you can process a small volume at a time?

  • Heap space error while creating XML document from Resultset

    I am getting Heap space error while creating XML document from Resultset.
    It was working fine from small result set object but when the size of resultset was more than 25,000, heap space error
    I am already using -Xms32m -Xmx1024m
    Is there a way to directly write to xml file from resultset instead of creating the whole document first and then writing it to file? Code examples please?
    here is my code:
    stmt = conn.prepareStatement(sql);
    result = stmt.executeQuery();
    result.setFetchSize(999);
    Document doc = JDBCUtil.toDocument(result, Application.BANK_ID, interfaceType, Application.VERSION);
    JDBCUtil.write(doc, fileName);
    public static Document toDocument(ResultSet rs, String bankId, String interfaceFileType, String version)
        throws ParserConfigurationException, SQLException {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document doc = builder.newDocument();
            Element results = doc.createElement("sims");
            results.setAttribute("bank", bankId);
            results.setAttribute("record_type", "HEADER");
            results.setAttribute("file_type", interfaceFileType);
            results.setAttribute("version", version);
            doc.appendChild(results);
            ResultSetMetaData rsmd = rs.getMetaData();
            int colCount = rsmd.getColumnCount();
            String columnName="";
            Object value;
            while (rs.next()) {
                Element row = doc.createElement("rec");
                results.appendChild(row);
                for (int i = 1; i <= colCount; i++) {
                    columnName = rsmd.getColumnLabel(i);
                    value = rs.getObject(i);
                    Element node = doc.createElement(columnName);
                    if(value != null)
                        node.appendChild(doc.createTextNode(value.toString()));
                    else
                        node.appendChild(doc.createTextNode(""));
                    row.appendChild(node);
            return doc;
    public static void write(Document document, String filename) {
            //long start = System.currentTimeMillis();
            // lets write to a file
            OutputFormat format = new OutputFormat(document); // Serialize DOM
            format.setIndent(2);
            format.setLineSeparator(System.getProperty("line.separator"));
            format.setLineWidth(80);
            try {
                FileWriter writer = new FileWriter(filename);
                BufferedWriter buf = new BufferedWriter(writer);
                XMLSerializer FileSerial = new XMLSerializer(writer, format);
                FileSerial.asDOMSerializer(); // As a DOM Serializer
                FileSerial.serialize(document);
                writer.close();
            } catch (IOException ioe) {
                ioe.printStackTrace();
            //long end = System.currentTimeMillis();
            //System.err.println("W3C File write time :" + (end - start) + "  " + filename);
        }

    you can increase your heap size..... try setting this as your environment variable.....
    variable: JAVA_OPTS
    value: -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m

  • Java Heap Space Error in BI Publisher

    Hi,
    I have an issue with BIP reports.
    My report is working fine in development instance as it has very less data.
    But the same report is throwing "Java Heap Space" error in another instance which is having huge amount of data.
    I tried to modify the oc4j.cmd file by increasing the values -XX:MaxPermSize=128m -Xmx1024m.
    After restarting the oc4j serivices,my OBIEE and BIP URL's becomes dead slow.
    Is there any solution to improve the performance (or) is there any other way to resolve this issue.
    I am running on
    OBIEE 10.1.3.4.2.
    oc4j Server
    Windows box.
    Thanks in advance.
    Pramod.

    Changing os's may help, or it may not. Java requires contiguous memory addresses for the heap, and that varies with the os, os parameters, what has previously been loaded into memory, and how much physical memory is available. The heap can't be assigned to the os's swap space; the os handles paging in and out of memory. All modern os's provide paging to disk.

  • While generating the huge report getting Java Heap Space Error

    Hi All,
    We are using XML Publisher 5.6.2. we have to generate the huge report which contains more than 300 sql statements. Since our schema structure we can not reduce the queries. Now we are facing issue while generating the report. It takes lot of time and gives 'java heap space error'. We are using data template and RTF template for generating excel report.
    Can anybody help me to resolve the issue? or is there any other way to generate the huge reports?
    Thanks,

    Hi,
    I had seen the forum, but we had already adjusted the parameters in the oc4j "-XX:MaxPermSize=128m -Xmx512m" values to 4096. but still we are getting the java heap space error. since we increased the size of xmx value, XML Publisher occupies 61% of memory of the server. B'coz of this our other applications are getting affected.
    and also, since we are using XML Publisher 5.6.2, can you please assist us how to set the scalable property to 'true'.
    Thanks,
    Ramya.
    Edited by: user753355 on Aug 12, 2009 3:35 AM

Maybe you are looking for