Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
OutOfMemoryError in large report generation
Helene
Hi,
we tried to generate a very large report (> million rows) with Birt 2.3.2 and got an OutOfMemoryError exception.
In our code cache is configured using ResultBufferSize like following:
IRunAndRenderTask task = reportEngine.createRunAndRenderTask(runnable);
task.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, BirtReportGenerator.class.getClassLoader());
task.getAppContext().put("org.eclipse.birt.data.query.ResultBufferSize", new Integer(128));
Is it possible to do something more for cache configuration to avoid this problem ?
Exception in thread "Thread-1" java.lang.OutOfMemoryError: Java heap space
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredField(Class.java:1880)
at java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.<init>(AtomicReferenceFieldUpdater.java:181)
at java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdater.java:65)
at java.sql.SQLException.<clinit>(SQLException.java:353)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1309)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
at org.eclipse.birt.report.data.oda.jdbc.Statement.executeQuery(Statement.java:443)
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.doExecuteQuery(OdaQuery.java:443)
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.executeQuery(OdaQuery.java:408)
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.execute(PreparedStatement.java:546)
at org.eclipse.birt.data.engine.executor.DataSourceQuery$OdaQueryExecutor.run(DataSourceQuery.java:929)
at java.lang.Thread.run(Thread.java:619)
Apr 20, 2009 7:41:03 PM org.eclipse.birt.report.engine.layout.pdf.font.FontMappingMana
Thanks,
Helene
Find more posts tagged with
Comments
JasonW
Helene,
What happens if you remove
task.getAppContext().put("org.eclipse.birt.data.query.ResultBufferSize", new Integer(128));
Also what are your maxpermgen settings on the JVM?
Jason