Hi, <br />
<br />
We are trying to execute reports that use the Birt Runtine engine. <br />
Those reports connect to a SAS db through the v 9.2 SAS JDBC driver named com.sas.rio.MVADriver and to a MySQL DB.<br />
<br />
Here are our findings: <br />
Birt Designer 2.5.0 + SAS JDBC Driver: Test JDBC connection does not work<br />
Birt Designer 2.5.1 + SAS JDBC Driver: Test JDBC connection does not work<br />
Birt Designer 2.5.2 + SAS JDBC Driver: Test JDBC connection DOES work!<br />
<br />
DB Visualizer (a standard Java DB querying tool <a class='bbc_url' href='
http://www.dbvis.com/'>DbVisualizer - The Universal Database Tool</a>) + SAS JDBC Driver: Test JDBC connection DOES work.<br />
<br />
BIRT Runtime (ReportEngine)+ SAS JDBC Driver : We are getting numerous errors. As shown below.<br />
Please note that the SAS drivers jar files are put into the ReportEnginepluginsorg.eclipse.birt.report.data.oda.jdbc_2.5.2.v20100205drivers directory as specified.<br />
<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.data.adapter.impl.ModelAdapter adaptDataSet<br />
ATTENTION: handle type: org.eclipse.birt.report.model.api.OdaDataSetHandle<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.data.adapter.impl.ModelAdapter adaptDataSet<br />
ATTENTION: handle type: org.eclipse.birt.report.model.api.OdaDataSetHandle<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.data.adapter.impl.ModelAdapter adaptDataSet<br />
ATTENTION: handle type: org.eclipse.birt.report.model.api.OdaDataSetHandle<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.data.adapter.impl.ModelAdapter adaptDataSet<br />
ATTENTION: handle type: org.eclipse.birt.report.model.api.OdaDataSetHandle<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.data.adapter.impl.ModelAdapter adaptDataSet<br />
ATTENTION: handle type: org.eclipse.birt.report.model.api.JointDataSetHandle<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager loadDriverExtensions<br />
INFO: Found JDBC driverinfo extension: driverClass=org.apache.derby.jdbc.EmbeddedDriver, connectionFactory=null<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager$DriverClassLoader addNewURL<br />
INFO: JDBCDriverManager: found JAR file drivers/mysql-connector-java-5.0.6-bin.jar. URL=bundleentry://40.fwk26100519/drivers/mysql-connector-java-5.0.6-bin.jar<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager$DriverClassLoader addNewURL<br />
INFO: JDBCDriverManager: found JAR file drivers/sas.core.jar. URL=bundleentry://40.fwk26100519/drivers/sas.core.jar<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager$DriverClassLoader addNewURL<br />
INFO: JDBCDriverManager: found JAR file drivers/sas.security.sspi.jar. URL=bundleentry://40.fwk26100519/drivers/sas.security.sspi.jar<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager$DriverClassLoader addNewURL<br />
INFO: JDBCDriverManager: found JAR file drivers/sas.svc.connection.jar. URL=bundleentry://40.fwk26100519/drivers/sas.svc.connection.jar<br />
4 mai 2010 14:42:29 org.eclipse.birt.report.engine.api.impl.RunAndRenderTask doRun<br />
GRAVE: Error happened while running the report.<br />
java.lang.ExceptionInInitializerError<br />
at com.sas.rio.RIOUtil.getWorkspace(RIOUtil.java:1478)<br />
at com.sas.rio.RIOUtil.<init>(RIOUtil.java:115)<br />
at com.sas.rio.MVAConnection.<init>(MVAConnection.java:192)<br />
at com.sas.rio.MVADriver.connect(MVADriver.java:267)<br />
at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager$WrappedDriver.connect(JDBCDriverManager.java:1162)<br />
at java.sql.DriverManager.getConnection(DriverManager.java:525)<br />
at java.sql.DriverManager.getConnection(DriverManager.java:140)<br />
at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.doConnect(JDBCDriverManager.java:251)<br />
at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.getConnection(JDBCDriverManager.java:212)<br />
at org.eclipse.birt.report.data.oda.jdbc.Connection.connectByUrl(Connection.java:234)<br />
at org.eclipse.birt.report.data.oda.jdbc.Connection.open(Connection.java:160)<br />
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaConnection.open(OdaConnection.java:239)<br />
at org.eclipse.birt.data.engine.odaconsumer.ConnectionManager.openConnection(ConnectionManager.java:165)<br />
at org.eclipse.birt.data.engine.executor.DataSource.newConnection(DataSource.java:190)<br />
at org.eclipse.birt.data.engine.executor.DataSource.open(DataSource.java:178)<br />
at org.eclipse.birt.data.engine.impl.DataSourceRuntime.openOdiDataSource(DataSourceRuntime.java:208)<br />
at org.eclipse.birt.data.engine.impl.QueryExecutor.openDataSource(QueryExecutor.java:405)<br />
at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:315)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:448)<br />
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:190)<br />
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:178)<br />
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.execute(PreparedOdaDSQuery.java:145)<br />
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:159)<br />
at org.eclipse.birt.data.engine.impl.PreparedJointDataSourceQuery.populatePreparedQuery(PreparedJointDataSourceQuery.java:553)<br />
at org.eclipse.birt.data.engine.impl.PreparedJointDataSourceQuery.populatePreparedQuery(PreparedJointDataSourceQuery.java:492)<br />
at org.eclipse.birt.data.engine.impl.PreparedJointDataSourceQuery.access$2(PreparedJointDataSourceQuery.java:490)<br />
at org.eclipse.birt.data.engine.impl.PreparedJointDataSourceQuery$JointDataSetQueryExecutor.createOdiQuery(PreparedJointDataSourceQuery.java:596)<br />
at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:323)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:448)<br />
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:190)<br />
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:178)<br />
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:560)<br />
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:152)<br />
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:265)<br />
at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1875)<br />
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)<br />
at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)<br />
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)<br />
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)<br />
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)<br />
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)<br />
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90)<br />
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:99)<br />
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:170)<br />
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:75)<br />
<br />
<br />
Caused by: java.lang.NullPointerException<br />
at com.sas.services.connection.ConnectionFactoryManager.<clinit>(ConnectionFactoryManager.java:194)<br />
... 50 more<br />
<br />
<br />
It seems that the connectionFactory is not found. Is this correct?<br />
I tried to add it to the driverInfo in plugin.xml but then an error message displays that the Connection Factory cannot be instantiated. <br />
Also, looking at the following web doc:<br />
<a class='bbc_url' href='
https://bugs.eclipse.org/bugs/show_bug.cgi?id=135246#c3'>https://bugs.eclipse.org/bugs/show_bug.cgi?id=135246#c3</a><br />
How do we externally supply a JDBC connection? Setting the OdaJDBCDriverClassPath is enough?<br />
<br />
Would it be the right way to go or am I missing something big?<br />
<br />
Thanks <br />
<br />
Stephane