JDBC-Datenbankverbindung in BIRT-Reports injizieren

Szenario: Ich möchte aus Java heraus einen IRunAndRenderTask für BIRT anstoßen. Der zu erstellende Report soll die Datenbankverbindung per Property übergeben bekommen.

Lösungsansätze:
1. Benutzen eines erweiterten ODA-Treibers (mit Connection Pooling: http://birtworld.blogspot.com/2007/01/birt-connection-pooling-continued.html)
2. Zugriff auf die Datenbank-Verbindung über JNDI
3. Benutzung von IConnectionFactory.PASS_IN_CONNECTION.

Letztere Methode erlaubt das injizieren einer vorhandenen Datenbankverbindung in den Report. Allerdings ist in dem ODA-Treiber bis 2008-11-17 (also vorletzte Woche) noch ein Bug vorhanden, der die Datenbankverbindung mit erfolgreichem Erstellen des Reports wieder schließt. Der Bug wurde aber gefixt, so dass sich mit dem Identifier IConnectionFactory.CLOSE_PASS_IN_CONNECTION das Schließen der Verbindung deaktivieren lässt.

Was für ein Frickel-Krams – noch kurz ein paar Stichworte: JDBC, DataSource, dynamic, BIRT, inject, user property, connection, pooling

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>