IBM Support

BIRT Performance Configuration

Technical Blog Post


BIRT Performance Configuration


Often enough when you run a BIRT report, the report may require more memory than what is allocated to the application server. The report will stop rendering and pop up with a message stating there are not enough resources. There is a solution to remedy this and it requires a separate server to offload the processing. This is called the BIRT process server.

You can create an additional JVM process specifically for the purpose of processing BIRT reports. Essentially, you are creating another process server that will listen for BIRT processing requests. This will eliminate the need for your BIRT report processing to share RAM with other threads on the application server. You will need to set the BIRT listening port property on the process server. On the application server side, you will set the host and port of the process server. The full details of the instructions can be found in the Reporting User Guide on page 117 under the section 'Configure a BIRT Process Server'.

As a general practice, I would also suggest that you allocate more memory for the process server's Java VM. Start with at least 2048MB of RAM. In addition to that, you should also set the REPORT_MEMORY_USAGE_LIMIT property in the to something higher than the default of 35%. This property indicates that no executing report can consume more than the set percentage of available memory. Since this process server is exclusive to BIRT report processing, it should be set to utilize as much of the Java VM's resources as possible. Following the example of 2048MB of RAM set for the JVM, I would suggest changing it to 70%. The server still needs about 500MB for the other threads (assuming no agents are running), so adjust accordingly.

You can use the following equation to calculate the property :

100 * (Total Memory - 500MB) / Total Memory = % Available Memory

This configuration will help offload the BIRT report processing from your application server, allowing it to have available resources for other tasks. Hopefully this will be helpful.


[{"Business Unit":{"code":"BU005","label":"IoT"}, "Product":{"code":"SSHEB3","label":"IBM TRIRIGA Application Platform"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":""}]