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
0 Comments