Hello, i am using:
redhat linux enterprise
weblogic6.1
java 1.3.1
When generating a 1000+ row x 54 col excel sheet using HSSF, the java servlet
throws an outofmemory exception everytime (if i do one with 600 rows or less,
it works fine). This is the first time i am using hssf and I followed the
tutorial code:
HSSFRow title = sheet.createRow((short)0);
title.createCell((short)0).setCellValue("columnname1");
title.createCell((short)1).setCellValue("columnname2");
......etc.....
title.createCell((short)54).setCellValue("columnname53");
ResultSet rs = getresultset();
int rowcount=1;
rs = executeQuery(sql); //get resultset, leftout some jdbc codes
while (rs.next()) //has 1000+ rows
{
HSSFRow datarow = sheet.createRow((short)rowcount);
rowcount++;
for(int colcount=0; colcount<55;colcount++)
{
datarow.createCell((short)colcount).setCellValue(rs.getString(colcount+1));
}
}
Here's memory usage log file from 2 tries, both resulted in outofmemory:
[GC 13773K->10735K(32640K), 0.0287972 secs]
<Dec 22, 2003 10:04:35 AM EST> <Debug> <DEBUG> <*********************FIRST
FOR LOOP:0>
......
<Dec 22, 2003 10:07:04 AM EST> <Debug> <DEBUG> <CELL COUNT:50 CELL VALUE:0>
//*****Note this row never finished, cell count should reach 54 like every
other row.
[Full GC 32639K->29327K(32640K), 1.8477303 secs]
[Full GC 29327K->29289K(32640K), 1.8480125 secs]
<Dec 22, 2003 10:07:08 AM EST> <Error> <HTTP>
<[WebAppServletContext(2438883,yyy,/yyy)] Servlet failed with Exception
java.lang.OutOfMemoryError
<<no stack trace available>>
--------------
[GC 11797K->8490K(32640K), 0.0076758 secs]
[GC 11818K->8461K(32640K), 0.0067751 secs]
<Dec 22, 2003 10:15:11 AM EST> <Debug> <DEBUG> <*********************FIRST
FOR LOOP:0>
.......
<Dec 22, 2003 10:17:12 AM EST> <Debug> <DEBUG> <CELL COUNT:54 CELL VALUE:0>
[Full GC 30728K->27639K(32640K), 1.7628752 secs]
[Full GC 32457K->28945K(32640K), 2.1956773 secs]
[Full GC 28945K->28945K(32640K), 1.7103354 secs]
<Dec 22, 2003 10:17:19 AM EST> <Error> <HTTP>
<[WebAppServletContext(2438883,yyy,/yyy)] Servlet failed with Exception
java.lang.OutOfMemoryError
<<no stack trace available>>
>From the log it seems the machine is not out of memory? I am really not sure
what is going on with hssf now. Please help, thank you
gaga