Oracle Error on Upgrade when PL/SQL Not Enabled
If you are upgrading to JasperReports Server version 6.0 or later using the js-upgrade-samedb.sh/bat script, you can encounter an error if Oracle's Procedural Language (PL/SQL) is not enabled.
The upgrade script used to upgrade to a 4.7 database from a 4.5 database requires the PL/SQL language to be enabled. The script is located here:
buildomatic/install_resources/sql/oracle/upgrade-oracle-4.5.0-4.7.0-pro.plsql
The error you encounter might look something like the following:
[advanced-sql] PLS-00103: Encountered the symbol “end-of-file”
If your PL/SQL language is not enabled please consult the documentation for your Oracle database to enable PL/SQL.
DB2 Script Error on Upgrade
If you are upgrading from 4.7 to 6.0, and you use the js-upgrade-samedb.bat/sh script, it is possible to get an error related to an inadequate PAGESIZE setting. The recommended minimal PAGESIZE setting for both 4.7 and 5.0 is 16384. If the PAGESIZE setting is less than this you can get an error such as the following:
com.ibm.db2.jcc.am.SqlException:
DB2 SQL Error: SQLCODE=-670,SQLSTATE=54010, SQLERRMC=4005;
or
com.ibm.db2.jcc.am.SqlSyntaxErrorException:
DB2 SQL Error: SQLCODE=-286, SQLSTATE=42727, SQLERRMC=8192;DB2ADMIN,
DRIVER=4.11.77
If you get this error, recreate your 4.5 database using a command such as the following:
CREATE DATABASE JSPRSRVR USING CODESET UTF-8 TERRITORY US PAGESIZE 16384
This may require reloading your database from your database backup and rerunning the upgrade procedure after PAGESIZE has been changed.
Include Audit Events on Upgrade
If you have auditing enabled and you run upgrade using js-upgrade-newdb.bat/sh, audit events are not imported by default. To import audit events, you need to run an additional command after the after the js-upgrade-newdb script completes. To do this, change to the buildomatic directory:
cd <js-install>/buildomatic
Then run one of the following commands (for example):
js-import.bat --input-zip=js-my-export-all.zip --include-audit-events (Windows)
js-import.sh --input-zip=js-my-export-all.zip --include-audit-events (Linux)
or
ant import -DimportFile=js-my-export-all.zip -DimportArgs="--include-audit-events"
These commands reimport all resources from the specified export file. Existing resources will not be overwritten and the audit event will be added.
When using either import utility, the server must be stopped to avoid issues with caches, configuration, and security. |
Overlay Upgrade Permissions Error with Bundled Installation
If you are using the overlay upgrade procedure with PostgreSQL as your database and you installed an earlier version of JasperReports Server, you might see an HTTP Status 404 error. The jasperserver-pro.log file will show something like:
ERROR ContextLoader,Thread-1:307 - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'proMaintenanceSchedulerTriggers' defined in ServletContext resource [/WEB-INF/applicationContext-audit.xml]: Cannot resolve reference to bean 'heartbeatTrigger' while setting constructor argument with key [1];
The occurs because if you use the Installer, in the default master properties file we have the user postgres and in context.xml we have the user jasperdb.
If this occurs, perform the following procedure:
1. | Back up your existing master properties. |
2. | Change the DB user in the master properties to jasperdb. |
3. | Run the overlay upgrade. |
Overlay Upgrade Domain Issue with MySQL and MariaDB JDBC Driver
When working with Domains using the MySQL database and when using the 1.1.2 version of the MariaDB JDBC driver (mariadb-java-client-1.1.2.jar), there can be an issue handling boolean values correctly. The fix is to upgrade to a higher version of the MariaDB JDBC driver such as 1.1.6.
Because JasperReports Server 5.5, 5.6, and 6.0 and also the Overlay packages are distributed with the MariaDB 1.1.2 JDBC driver, this error can potentially be seen even without an upgrade operation.
The issue is potentially seen when a boolean filter is created on a domain. The filter ends up not being evaluated as a boolean type , but instead ends up as a numeric type. This is because of a bug in older versions of the MariaDB driver (https://mariadb.atlassian.net/browse/CONJ-72) where a TINYINT(1) is not evaluated to BIT.
Recommended Comments
There are no comments to display.