Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » BIRT » Handle JDBC exception(Handling exception)
Handle JDBC exception [message #1388547] Thu, 26 June 2014 15:51 Go to next message
Robbin Alexander is currently offline Robbin AlexanderFriend
Messages: 2
Registered: June 2014
Junior Member
Greetings to all,

I have a scheduler job which is based on a standalone RunAndRenderTask. The report design connects to a remote mysql database to fetch data. The scheduler generates a PDF and emails the report as attachment to a set of people. This works as long as the database is available.

But when the database is unavailable, then I can see the error in the logs, but the RunAndRenderTask still generates a PDF report which is blank and useless, and this gets emailed by the scheduler. I need to be able to catch this exception and instead email another set of people who can fix the DB issue. I tried various things but couldn't figure out how to do it. Any help is appreciated. (This is my first post, so apologize if I miss something).

Here's the code I have.
		IReportEngine engine = null;
		IRunAndRenderTask runAndRenderTask = null;
		
		try  {
			EngineConfig config = new EngineConfig();
			config.setEngineHome("birt-runtime-4_4_0/RuntimeEngine");
			Platform.startup(config);
			IReportEngineFactory factory = (IReportEngineFactory) Platform
					.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
			engine = factory.createReportEngine(config);
			
			IReportRunnable reportRunnable = engine.openReportDesign(DATA_PATH + "sample.rptdesign");
			runAndRenderTask = engine.createRunAndRenderTask(reportRunnable);
			
			PDFRenderOption option = new PDFRenderOption();
			option.setOutputFileName(DATA_PATH + "output.pdf");
			option.setOutputFormat("pdf");
			
			runAndRenderTask.setRenderOption(option);
			runAndRenderTask.run();
		} catch (Exception e) {
			//handle exception
			
		} finally {
			if (runAndRenderTask != null) {
				runAndRenderTask.close();
			}
			
			if (engine != null) {
				engine.destroy();				
			}
			Platform.shutdown();
			RegistryProviderFactory.releaseDefault();
		}
		
Re: Handle JDBC exception [message #1388833 is a reply to message #1388547] Fri, 27 June 2014 01:47 Go to previous message
Robbin Alexander is currently offline Robbin AlexanderFriend
Messages: 2
Registered: June 2014
Junior Member
This is the exception stacktrace, which never gets propagated back by RunAndRenderTask.run()
INFO: Loaded JDBC driver class in class path: com.mysql.jdbc.Driver
Jun 26, 2014 9:26:43 PM org.eclipse.birt.data.engine.odaconsumer.ConnectionManager openConnection
SEVERE: Unable to open connection.
org.eclipse.birt.report.data.oda.jdbc.JDBCException: There is an error in get connection, Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server..
	at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.doConnect(JDBCDriverManager.java:336)
	at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.getConnection(JDBCDriverManager.java:235)
	at org.eclipse.birt.report.data.oda.jdbc.Connection.connectByUrl(Connection.java:252)
	at org.eclipse.birt.report.data.oda.jdbc.Connection.open(Connection.java:162)
	at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaConnection.open(OdaConnection.java:250)
	at org.eclipse.birt.data.engine.odaconsumer.ConnectionManager.openConnection(ConnectionManager.java:165)
	at org.eclipse.birt.data.engine.executor.DataSource.newConnection(DataSource.java:224)
	at org.eclipse.birt.data.engine.executor.DataSource.open(DataSource.java:212)
	at org.eclipse.birt.data.engine.impl.DataSourceRuntime.openOdiDataSource(DataSourceRuntime.java:217)
	at org.eclipse.birt.data.engine.impl.QueryExecutor.openDataSource(QueryExecutor.java:435)
	at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:322)
	at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:463)
	at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:190)
	at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:178)
	at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.execute(PreparedOdaDSQuery.java:178)
	at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:637)
	at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:152)
	at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:275)
	at org.eclipse.birt.report.engine.executor.ExtendedGenerateExecutor.executeQueries(ExtendedGenerateExecutor.java:205)
	at org.eclipse.birt.report.engine.executor.ExtendedGenerateExecutor.execute(ExtendedGenerateExecutor.java:65)
	at org.eclipse.birt.report.engine.executor.ExtendedItemExecutor.execute(ExtendedItemExecutor.java:62)
	at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
	at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
	at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)
	at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
	at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
	at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
	at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:181)
	at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
	at test.ReportTester.test(ReportTester.java:50)
	at test.ReportTester.main(ReportTester.java:19)
Previous Topic:Unable to Open downloaded report in excel through Maximo 7.5
Next Topic:Column alias/name ignored
Goto Forum:
  


Current Time: Fri Apr 26 04:17:29 GMT 2024

Powered by FUDForum. Page generated in 0.02816 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top