I have to generate some reports simultaneously which i am achieving using BIRT 2.5 APIs and a ThreadPoolExecutor. <br />
- I am running 10 threads at a time all accessing the same rpt with different parameters.<br />
- The connection is provided to the rpt externally as explained <a class='bbc_url' href='
http://birtworld.blogspot.com/2005/12/using-supplied-connection-with-birt.html'>here</a>(<a class='bbc_url' href='
http://birtworld.blogspot.com/2005/12/using-supplied-connection-with-birt.html'>http://birtworld.blogspot.com/2005/12/using-supplied-connection-with-birt.html</a>) This is a dedicated connection obtained by providing the username and password and tns entires.<br />
- The report contains some static content, text pages, some Bar graphs, a Pie chart, a table display and a calendar display.<br />
<br />
I am intermittently getting some errors (stack trace in the attachment). If i run the same for the failed reports, they run successfully during the next run. <br />
<br />
1) When we invoke the report generation for 20 reports, about 3-4 reports fail. They pass on the second attempt. The reports that fail, do not have any particular pattern. 3 jobs could fail in one attempt and 3 other jobs could fail in the next attempt. Do you see any issue that could be because of the report engine or the connection provided ? <br />
If i perform the same report generation with multiple threads invoked as individual threads, all the reports are coming up without any errors; so multiple access of rpt does not look like an issue.<br />
<br />
2) We have a calendar report that uses a datacube to display calendar data. For some of the reports this calendar report is missing. But the report engine does not throw an error. <br />
Do you see any issue with the connection getting closed before the data is read by the cube ? I am closing the connection only after the API returns a output stream. This is quite intermittent too.<br />
<br />
3) When i try to look at the getMessage() of the exception thrown to the caller, its empty !! So the only way i could get the details of the exception is through the logs.<br />
<br />
The error message though is not consistent. So we are unable to identify the root cause of the issue.<br />
<br />
<span style='font-size: 8px;'><em class='bbc'><br />
Jan 7, 2013 5:39:36 PM org.eclipse.birt.data.engine.odaconsumer.ConnectionManager openConnection<br />
SEVERE: Cannot open connection.<br />
org.eclipse.birt.report.data.oda.jdbc.JDBCException: Missing properties in Connection.open(Properties).<br />
at org.eclipse.birt.report.data.oda.jdbc.Connection.open(Connection.java:148)<br />
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaConnection.open(OdaConnection.java:238)<br />
at org.eclipse.birt.data.engine.odaconsumer.ConnectionManager.openConnection(ConnectionManager.java:157)<br />
...<br />
...<br />
<br />
<br />
java.lang.IllegalArgumentException<br />
at org.eclipse.birt.report.model.core.StructureContext$ElementContainerInfo.<init>(StructureContext.java:572)<br />
at org.eclipse.birt.report.model.core.StructureContext.<init>(StructureContext.java:59)<br />
at org.eclipse.birt.report.model.parser.StructureState.end(StructureState.java:372)<br />
at org.eclipse.birt.report.model.util.XMLParserHandler.endElement(XMLParserHandler.java:176)<br />
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)<br />
...<br />
...<br />
Jan 7, 2013 5:39:10 PM org.eclipse.birt.report.model.parser.ModuleReader readModule<br />
SEVERE: Line Number:152 Error Code:Error.XMLParserException.EXCEPTION Exception:org.eclipse.birt.report.model.api.command.NameException: The name of report.Data Sources[0] is required. Message:A generic exception occurred. <br />
Jan 7, 2013 5:39:10 PM org.eclipse.birt.report.engine.api.impl.ReportEngineHelper openReportDesign<br />
SEVERE: invalid design file file:/C:/TestRPT.rptdesign<br />
engine exception ==>The design file file:/C:/TestRPT.rptdesign has error and can not be run.<br />
<br />
</em></span>