Monday, February 18, 2013

Rendering Large Reports

From my experience, rendering a really large report in BI Publisher 10g is a big headache. Either you’ll get "Java Heap Space" exception, or the browser will hang with a blank page and no error.

If your BI Publisher server is 32-bit, and if you try to increase the heap size you’d might end up not being able to start the Java EE server (in my case, OC4J), or making it crash at some point of the report execution.

If you are able to migrate the application to a 64-bit server, then that would be the best solution. JVM does not work well in 32-bit, and surely have a limit of less than 2 GB of heap space (around 1,5 GB). On a 64-bit server, this limit is much higher. I’m already using more than 10 GB, and… so far so good.

But either with 32 or 64-bit, there are some actions you can take to achieve a better performance and reliability for large reports:


Set the temporary folder
Setting a temporary folder for report execution will help handling large sets of data and its merge into report templates.

1) In each server where you have BI Publisher installed, create a folder that will be used for the application temporary files. Make sure it has a lot of space and that the user running the JVM for BI Publisher has permissions to write in it. This folder can be created inside the BI Publisher installation folders, but in that case I recommend using the application’s root folder.

2) Login in BI Publisher administrator user

3) Navigate to Admin > System Maintenance > Server Configuration

4) At General Properties section, in the System Temporary Directory selection box, add the full path to the folder. In a Windows system, make sure that you use slash (“/”) and not backslash (“\”).

5) Click the Apply button, and check if the confirmation message appears at the top of the screen:


Confirmation
Settings saved successfully. Any changes will not take effect until the application is restarted.



Change Properties
There are 3 properties that normally help rendering large reports.
1) Login in BI Publisher administrator user

2) Navigate to Admin > Runtime Configuration > Properties

3) Set this properties to TRUE
      - Use BI Publisher's XSLT processor
      - Enable scalable feature of XSLT processor
      - Enable XSLT runtime optimization

4) Click the Apply button, and check if the confirmation message appears at the top of the screen:



Confirmation
Settings saved successfully. Any changes will not take effect until the application is restarted.


No comments:

Post a Comment