Jump to content
Changes to the Jaspersoft community edition download ×

Thread Safety and Performance


Recommended Posts

We are considering moving our application from WebFocus to JasperReports and had a question about thread safety and performance.


We expect approximately 30-40 users to issue the same report queries (that may return large volumes of data) with different parameters at nearly the same times in the month. As their deadlines bear down on them, they may even execute the same reports many times, simultaneously with other users.


Given this scenario, the questions we have are:


- Is Jasper Reports thread safe? Do we risk corruption of report queries? Deadlock?

- Does Jasper Reports serialize thread access to report output in any way? Or will it process the same report for multiple users simultaneously?

- If there are scaling issues, what are some of the recommended ways to scale the engine?



Link to comment
Share on other sites

  • 2 weeks later...
  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic



I will try to answer your concerns:


- JasperReports is thread safe. The same in-memory report template could be used simoultaneously by multiple threads. By default, JasperReports uses multi-threading when dealing with subreports, but if this is not wanted in some environments, multi-threading could be turned off and Javaflow continuations are used instead;


- A separate report generating process will run for each of the users requests;


- To optimize memory consumption in case large datasets are processed, the virtualizer could be used. This allows storing temporary document data on the file system to free up memory;


I hope this helps.


Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...