Category Archives: Advanced Topic

How to upgrade Bi-Server 3.5.2 to the latest reporting release

One of the big fat questions lingering in the room with the latest release is (as usual):

Can I upgrade my existing BI-Server installation with the new reporting release?

Short answer: Yes.

With the latest bugfix release of Pentaho Reporting, we also had to upgrade both Kettle and Mondrian to their latest versions to make it run in the BI-Server 3.6.0 release. Due to the massive amount of work that went into Kettle 4.0, many of their APIs changed thus making it impossible to maintain backward compatibility.

Although we would love to see everyone migrate to BI-Server 3.6 immediately, the chances of that happening are fairly slim. Businesses seem to be a bit reluctant to change, once they have everything up and running. Heck, some people still run a 1.x release, which was released three days after the last dinosaurs died.

So how can I upgrade then? What will be the impact of this upgrade?

The upgrade is straight forward and can be done by deleting the following jar-files from the pentaho/WEB-INF/lib directory:

libbase-1.1.5.jar
libdocbundle-1.1.6.jar
libfonts-1.1.5.jar
libformat-1.1.5.jar
libformula-1.1.5.jar
libloader-1.1.5.jar
libpixie-1.1.5.jar
librepository-1.1.5.jar
libserializer-1.1.5.jar
libswing-1.1.5.jar
libxml-1.1.5.jar
pentaho-reporting-engine-classic-core-3.6.0-GA.jar
pentaho-reporting-engine-classic-extensions-3.6.0-GA.jar
pentaho-reporting-engine-classic-extensions-hibernate-3.6.0-GA.jar
pentaho-reporting-engine-classic-extensions-mondrian-3.6.0-GA.jar
pentaho-reporting-engine-classic-extensions-olap4j-3.6.0-GA.jar
pentaho-reporting-engine-classic-extensions-pmd-3.6.0-GA.jar
pentaho-reporting-engine-classic-extensions-reportdesigner-parser-3.6.0-GA.jar
pentaho-reporting-engine-classic-extensions-sampledata-3.6.0-GA.jar
pentaho-reporting-engine-classic-extensions-scripting-3.6.0-GA.jar
pentaho-reporting-engine-classic-extensions-xpath-3.6.0-GA.jar
pentaho-reporting-engine-legacy-charts-3.6.0-GA.jar
pentaho-reporting-engine-legacy-functions-3.6.0-GA.jar
pentaho-reporting-engine-wizard-core-3.6.0-GA.jar

and replacing them with

libbase-1.1.6.jar
libdocbundle-1.1.8.jar
libfonts-1.1.6.jar
libformat-1.1.6.jar
libformula-1.1.7.jar
libformula-ui-1.1.7.jar
libloader-1.1.6.jar
libpixie-1.1.6.jar
librepository-1.1.6.jar
libserializer-1.1.6.jar
libswing-1.1.7.jar
libxml-1.1.7.jar
pentaho-reporting-engine-classic-core-3.6.1-GA.jar
pentaho-reporting-engine-classic-extensions-3.6.1-GA.jar
pentaho-reporting-engine-classic-extensions-hibernate-3.6.1-GA.jar
pentaho-reporting-engine-classic-extensions-mondrian-3.6.1-GA.jar
pentaho-reporting-engine-classic-extensions-olap4j-3.6.1-GA.jar
pentaho-reporting-engine-classic-extensions-pmd-3.6.1-GA.jar
pentaho-reporting-engine-classic-extensions-reportdesigner-parser-3.6.1-GA.jar
pentaho-reporting-engine-classic-extensions-sampledata-3.6.1-GA.jar
pentaho-reporting-engine-classic-extensions-scripting-3.6.1-GA.jar
pentaho-reporting-engine-classic-extensions-xpath-3.6.1-GA.jar
pentaho-reporting-engine-legacy-charts-3.6.1-GA.jar
pentaho-reporting-engine-legacy-functions-3.6.1-GA.jar
pentaho-reporting-engine-wizard-core-3.6.1-GA.jar

Note that the “pentaho-reporting-engine-classic-extensions-kettle” jar remains at version 3.6.0-GA. This ensures that the older Kettle 3.2 is used when running reports with a Kettle datasource.

To make the most of this upgrade, I also recommend to add a few new settings to the “pentaho/WEB-INF/classes/classic-engine.properties” file:

#
# These settings control how pagination states are retained in the reporting
# engine. For the server, it is safe to scale down the number of states to a
# bare minimum. This reduces the memory footprint of reports considerably. 
org.pentaho.reporting.engine.classic.core.performance.pagestates.PrimaryPoolSize=1
org.pentaho.reporting.engine.classic.core.performance.pagestates.SecondaryPoolFrequency=4
org.pentaho.reporting.engine.classic.core.performance.pagestates.SecondaryPoolSize=1
org.pentaho.reporting.engine.classic.core.performance.pagestates.TertiaryPoolFrequency=1000

#
# Disable several assertations and debug-messages, which are cool for testing reports
# but slow down the report processing. You may want to enable them in your test system
# but want to make sure that they are disabled in your production environment.
org.pentaho.reporting.engine.classic.core.layout.ParanoidChecks=false
org.pentaho.reporting.engine.classic.core.modules.output.table.base.DebugReportLayout=false
org.pentaho.reporting.engine.classic.core.modules.output.table.base.ReportCellConflicts=false
org.pentaho.reporting.engine.classic.core.modules.output.table.base.VerboseCellMarkers=false

# Performance monitoring entries. Can generate quite a lot of text in the logs, so 
# keep them disabled for production environments 
org.pentaho.reporting.engine.classic.core.ProfileReportProcessing=false
org.pentaho.reporting.engine.classic.core.performance.LogPageProgress=false
org.pentaho.reporting.engine.classic.core.performance.LogLevelProgress=false
org.pentaho.reporting.engine.classic.core.performance.LogRowProgress=false

With both the upgrade of the libraries and the new configuration settings, you should see a good performance boost.