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.