Hallo zusammen,
Ich habe ein Problem mit der Report-Engine BIRT. Das Produkt frisst bei mir Speicher.
Zur Umgebung:
Das Problem ist: wenn grafische Reports requestet werden, steigt der Speicherbedarf an.
Allerdings nicht direkt der Speicherbedarf in Java, sondern für das EXE.
MyEclipse Reports wird in den Projekten etwas anders integriert als bei Eclipse mit BIRT. Genauere Infos finden sich unter http://www.myeclipseide.com/documentation/reporting/reporting_birt/. Eclipse mit BIRT habe ich noch nicht selbst benutzt. Bei MyEclipse Reports werden jedenfalls in web.xml zwei untergeordnete Dienste für Viewer und Engine angemeldet.
Was geht:
Ich habe jetzt einige Tage an dem Problem geforscht und bereits einiges ausprobiert:
Ich bin aktuell mit meinem Latein am Ende.
Die BIRT-Engine ist erheblich komplex und es kann meines Erachtens nicht durchdebugged werden, wo genau was passiert und was genau jetzt den bleibenden Speicherbedarf erzeugt.
Interessant sind noch folgende Punkte:
Ich bin für jeden Hinweis dankbar, wo das Problem liegen könnte oder was ich noch testen kann.
Ich habe ein Problem mit der Report-Engine BIRT. Das Produkt frisst bei mir Speicher.
Zur Umgebung:
- Meine IDE ist Eclipse mit MyEclipse
- Report-Engine ist MyEclipse Reports, also eigentlich BIRT
- BIRT wird in einer Web-Application betrieben
- Als Application Server wird Tomat 6.0 verwendet
- Als Java-Umgebung die aktuellste Java6-JRE 1.6.0_22
Das Problem ist: wenn grafische Reports requestet werden, steigt der Speicherbedarf an.
Allerdings nicht direkt der Speicherbedarf in Java, sondern für das EXE.
MyEclipse Reports wird in den Projekten etwas anders integriert als bei Eclipse mit BIRT. Genauere Infos finden sich unter http://www.myeclipseide.com/documentation/reporting/reporting_birt/. Eclipse mit BIRT habe ich noch nicht selbst benutzt. Bei MyEclipse Reports werden jedenfalls in web.xml zwei untergeordnete Dienste für Viewer und Engine angemeldet.
Was geht:
- Normale Web-Request funktionieren
- Report-Requests ohne grafische Elemente, also nur mit Listen, gehen
Ich habe jetzt einige Tage an dem Problem geforscht und bereits einiges ausprobiert:
- Die Tomcat-Version ist nicht relevant. Das Produkt wird bei uns normalerweise mit 6.0.26 ausgeliefert. Ein installiertes aktuellstes 6.0.30 ändert nichts.
- Ein Upgrade der normalerweise verwendeten BIRT-Version von 2.5.1 auf 2.5.2 bringt nichts. Eine noch neuere Version könnte MyEclipse noch nicht.
- Hinweise darauf, den PermSpace zu vergrößern (was ich als keine wirkliche Lösung angesehen habe) bringt gar nichts.
- Ein Start von Command Line oder als Service ändert nichts
- Eine gefundene Lösung eines zusätzlichen Parameters für das JSP-Servlet hat nichts gebracht
- Eine gefundene ältere Lösung der Anpassung der BIRT Engine konnte für BIRT 2.5.2 weitestgehend validiert werden und der zusätzliche Vorschlag innerhalb von BIRT die JavaScript Engines nur synchronized aufzurufen hat auch nichts gebracht.
- Starten unter JBoss 6 klappt nicht wegen irgendwelcher undurchsichtiger Versionsprobleme bei Log4J (das versuche ich noch zum Laufen zu bringen)
- Starten unter JBoss 5.2 klappt nicht, wohl weil JBoss hier scheinbar unkorrekt Class-Loader verwendet.
Ich bin aktuell mit meinem Latein am Ende.
Die BIRT-Engine ist erheblich komplex und es kann meines Erachtens nicht durchdebugged werden, wo genau was passiert und was genau jetzt den bleibenden Speicherbedarf erzeugt.
Interessant sind noch folgende Punkte:
- Der Speicherbedarf den Java über sich aussagt wächst nicht.
- Wenn aus Eclipse heraus Tomcat gestartet wird, taucht das Problem nicht auf. Vielleicht achte ich aber auch nicht den richtigen Prozess. Tomcat6 gibt es dann jedenfalls nicht in der Prozess-Liste des Task-Managers.
- Ich hatte ein ähnliches Problem mit nicht gestoppten Threads. D.h. die haben nicht nur Platz in Java belegt, sondern auch am EXE selbst. Das Problem ist aber gelöst.
Ich bin für jeden Hinweis dankbar, wo das Problem liegen könnte oder was ich noch testen kann.