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)
BIRT reports hangup on multi threaded application
hkseeram
Hi
We have a application running on JBOSS7.1.1Final integrated with BIRT3.7.2. We have a JMS listener that has 8 maxConcurrentConsumers.
Our BIRT reports executed within a JBOSS applilcation via JMS listerners, springframe work listeners.
We are experience some race-conditions within BIRT (we believe).
We were wondering what is the Best-Practise for creating a Platform/ReportEngine instance in many reporting JMS-threads? Should we create a unique Platfrom/ReportEngine instance for each Thread? Should we have all threads share the same Platform instance?
The result of IReportEngineFactory is a thread safe?
I appreciate for your help
Thanks
Hari
Find more posts tagged with
Comments
hkseeram
Hi
We have a application running on JBOSS7.1.1Final integrated with BIRT3.7.2. We have a JMS listener that has 8 maxConcurrentConsumers.
Our BIRT reports executed within a JBOSS applilcation via JMS listerners, springframe work listeners.
We are experience some race-conditions within BIRT (we believe).
We were wondering what is the Best-Practise for creating a Platform/ReportEngine instance in many reporting JMS-threads? Should we create a unique Platfrom/ReportEngine instance for each Thread? Should we have all threads share the same Platform instance?
The result of IReportEngineFactory is a thread safe?
I appreciate for your help
Thanks
Hari
mwilliams
You should wrap the platform / engine access in a singleton and then wait until the app is finished to shut it down.
CBR
As mwilliams said: The IReportEngine instance is thread safe and you should not create multiple instances of it even if your app is multi-threaded.
In addition you should always close the tasks (IRenderTask, RunTask, ...) you created on the engine. Not closing the tasks can cause your application to deadlock. Another point is the JDBC Data source for Query Builder connection that can be defined in BIRT reports. I have heared that it seems to be the case that it is causing problems in multi threaded applications. I m always using the simple JDBC connection in my BIRT projects for multiple reasons.