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)
Integrating BIRT in cluster environment Memory Error
ph99
Hi all<br />
in my test environment I've integrated BIRT Report Engine (appserver Glassfish 2.1)and it works fine.<br />
now I've redeployed my webapp in cluster environment but each time I invoke webreport it crashes one cluster node with this message:<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
java.lang.OutOfMemoryError: PermGen space
</pre>
<br />
and in reportEngine log<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
Nov 8, 2011 1:14:32 PM org.eclipse.birt.report.engine.api.impl.RunAndRenderTask doRun
SEVERE: There is insufficient memory to execute this report.
</pre> <br />
<br />
I've tried to increase heap size to 256mb but nothing changes<br />
I've tried to destroy each time ReportEngine.<br />
Do I need a different configuration for clustering BIRT?<br />
Thks
Find more posts tagged with
Comments
CBR
<blockquote class='ipsBlockquote' ><p>
I've tried to increase heap size to 256mb but nothing changes<br />
I've tried to destroy each time ReportEngine.<br />
Do I need a different configuration for clustering BIRT?<br />
Thks</p></blockquote>
<br />
The problem is that you run out of memory for the PermGen space. You increased the HeapSize which is something different.<br />
<br />
I m assuming that you run a BIRT version lower then 3.7 (is that correct?)<br />
<br />
To increase PermGen space you have to set the JVM parameter -XX:MaxPermSize. I recommend to increase it to 256m. The default is 64m
ph99
Yes, that's true.
I'm using 2.6
Do you think that 3.7 manages better memory allocation?
CBR
Hi,
BIRT 3.7 doesn't use OSGI to run the Report Engine API. When running a OSGI in Java 64MB for PermGen is not enough because of the classloader seperation (so the problem you are facing is that the default permGen is not enough to run the OSGI framework).
I don't think that it's that big of a memory improvement to not run OSGI (but at least there is a improvement because it does no longer run a external framework :-))
In addition there are some memory leaks that have been resolved in BIRT 3.7 (especially some scripted data set related leaks).
If you are running the BIRT report engine in a complex environment where you already have a lot of jar's in the classpath of your own application you will be better keep using BIRT 2.6 because in BIRT 3.7 you have to add all BIRT related jar files to the main classpath of your application (jar **** ahead!)