Ich versuche, meine BIRT-Berichte einzurichten und den iServer, auf dem sie sitzen, so zu konfigurieren, dass die Datenbanken, mit denen die Datenquellen
verbunden sind, je nach Umgebung bestimmt werden. Im Moment gibt es nur eine iServer-Instanz und viele Umgebungen, die eine Tomcat-Webanwendung ausführen, die darauf zugreift (das könnte das Problem sein...).
Im Wesentlichen soll sich der Bericht an diesen Orten unterschiedlich verbinden:
- Lokale Entwicklung, die eine lokale Tomcat-Instanz der Anwendung ausführt, die mit dem iPortal/iServer kommuniziert. Lokale Datenbank, die jedoch leicht auf andere Datenbanken geändert werden kann, um beispielsweise Debugging zu ermöglichen.
- QA-Bereitstellung, QA-Datenbank
- Produktionsbereitstellung, Produktionsdatenbank
Ich habe zwei Möglichkeiten gesehen, wie man das beheben kann:
- Die erste Option besteht darin, die
Datenquelle
an eine Konfigurationsdatei in den Ressourcen zu binden. Das Problem hierbei ist, dass die Ressourcen nur lokal auf dem Server verfügbar sind, auf dem der iServer läuft, nicht jedoch in der Webanwendung. Daher bietet dies, wenn ich es richtig verstehe, nicht die Flexibilität, die ich suche. - Die zweite Option besteht darin, alle Verbindungsinformationen als Berichtsparameter zu übergeben und die Anwendung die richtigen Parameter bestimmen zu lassen. Auf diese Weise könnte die Anwendung aus einer lokalen Konfigurationsdatei lesen. Diese Option würde funktionieren, aber ich bin skeptisch hinsichtlich der Sicherheit (oder des Mangels an Sicherheit), wenn Verbindungsdaten/Anmeldeinformationen weitergegeben werden.
Hat jemand eine bessere Option? Oder verwenden die Leute einfach lokale iServer-Instanzen für die Entwicklung? Ich könnte mir vorstellen, dass das Ausführen eines iServer für jede Umgebung dieses Problem vereinfachen würde und es ermöglichen würde, dass die Berichte in einer QA-Umgebung aktualisiert und getestet werden können, ohne die Produktion zu stören, also ist das vielleicht die Lösung.