Technical Blog Post
Abstract
TCR 2.x connection fail - reports do not run
Body
TCR 2.x connection fail, reports do not run
Customer reported that suddenly TCR failed to work and they were getting the error:
ReportDesign (id = 1): - Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc Cannot load JDBC Drive class:
com.ibm.db2.jcc.DB2Driver
when trying to run reports.
They double checked the drivers and they were in the correct path:
TCR_home\tipv2Components\TCRComponent\lib\birt-runtime-2_2_2\ReportEngine\plugins\org.eclipse.birt.report.data.oda.jdbc_2.2.2.r22x_v20071206\drivers
The required JDBC files are as follows:
-For DB2, copy db2jcc.jar and db2jcc_licence_cu.jar
-For Oracle, copy ojdbc14.jar and ojdbc14_g.jar
-For Microsoft SQL, copy sqljdbc.jar
This made no change, so next came a a review of all the files.
Which showed in the SystemOut.log the loading of the JDBC drivers error:
[4/15/16 13:31:25:975 GMT+05:30] 00000031 ReportEngine W Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc
Cannot load JDBC Driver class: com.ibm.db2.jcc.DB2Driver
org.eclipse.birt.data.engine.core.DataException: Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc
Cannot load JDBC Driver class: com.ibm.db2.jcc.DB2Driver
at org.eclipse.birt.data.engine.odaconsumer.ConnectionManager.openConnection(ConnectionManager.java:157)
at org.eclipse.birt.data.engine.executor.DataSource.newConnection(DataSource.java:134)
.
.
. followed by:
Caused by: org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot load JDBC Driver class: com.ibm.db2.jcc.DB2Driver
at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.findDriver(JDBCDriverManager.java:623)
.
.
.
followed by
[4/15/16 13:31:26:289 GMT+05:30] 00000031 I org.eclipse.birt.chart.reportitem.ChartReportItemImpl getProperty getProperty(...) - onRender
[4/15/16 13:31:26:368 GMT+05:30] 00000031 DataEngineImp I Data Engine starts up
[4/15/16 13:31:26:605 GMT+05:30] 00000031 Image E No space left on device
java.io.IOException: No space left on device
at java.io.FileOutputStream.writeBytes(Native Method)
There was no further pointer in the log to show where there was a space issue, but after checking the system it showed that /tmp was full.
Once space was cleared in /tmp then the reports were able to be run again.
So always make sure there is some space in /tmp!
UID
ibm11084083