Troubleshooting
Problem
Table (id = 59)=
+ A report document error occurred when loading: Result Data.
+ Cannot invoke "org.eclipse.birt.report.engine.extension.IQueryResultSet.getRowIndex()" because "rset" is null
Cause
This issue occurs when running SQL-based BIRT reports in environments where DB2 is used as the database and the system has been upgraded to TRIRIGA version 5.0.x. The problem is due to a change in the behavior of the DB2 JDBC driver, which now returns column names instead of column labels by default. Since BIRT expects column labels, this mismatch results in a null result set error.
Setting useJDBC4ColumnNameAndLabelSemantics="2" directs the DB2 JDBC driver to return column labels rather than column names, aligning with the behavior expected by BIRT reports. This configuration is particularly important for DB2 environments due to changes introduced in newer JDBC drivers that affect how column names and labels are resolved.
It does not affect other databases such as Oracle or SQL Server, nor does it impact TRIRIGA versions outside of the 5.0.x series.
Note: Before applying this setting, it is strongly recommended to back up your server.xml file to prevent any issues and ensure a smooth rollback if needed.
Resolving The Problem
1. Stop the Application Server
Shut down the IBM TRIRIGA application server before making configuration changes.
2. Modify server.xml Configuration
Locate the server.xml file in your application server configuration directory.
Add the following line inside the relevant <dataSource> element:
<properties.db2.jcc useJDBC4ColumnNameAndLabelSemantics="2"/>
This setting ensures that the JDBC driver returns column labels as expected by BIRT.
Sample Snippet:
<dataSource jndiName="jdbc/local/DataSource-TRIRIGA-data"
transactional="true"
type="javax.sql.DataSource"
statementCacheSize="10"
isolationLevel="TRANSACTION_READ_COMMITTED"
commitOrRollbackOnCleanup="commit"
syncQueryTimeoutWithTransactionTimeout="true"
supplementalJDBCTrace="false">
<jdbcDriver id="db2" libraryRef="tririgaLib" />
<properties.db2.jcc
URL="jdbc:db2://9.30.43.195:60000/test16"
databaseName="test16"
serverName="9.30.43.195"
portNumber="60000"
jdbcCollection="NULLIDR1"
user="test16"
password="********" />
<properties.db2.jcc useJDBC4ColumnNameAndLabelSemantics="2"/>
<connectionManager maxPoolSize="100"
minPoolSize="10"
purgePolicy="ValidateAllConnections"
connectionTimeout="10s"
maxIdleTime="30m"
agedTimeout="30m"/>
</dataSource>
3. Restart the Server
Start the application server to apply the updated configuration.
4. Validate the Reports
Run the affected BIRT reports again. They should now load successfully without the error.
Document Location
Worldwide
Was this topic helpful?
Document Information
Modified date:
23 June 2025
UID
ibm17237607