Dieses Blog durchsuchen

Samstag, 28. August 2010

JBoss und Hot-Deployment

Immer wieder gibt es ja Probleme mit dem Hot-Deployment "Feature" vom JBoss AS. In vorherigen Versionen traten in diesem Zusammenhang häufig Speicherprobleme auf. So wurde beispielsweise bei jedem Hot-Deployment einer Anwendung mehr Speicher allokiert, so dass irgendwann ein Neustart unerlässlich wurde.

Nun dachte ich, dass diese Probleme mit der aktuellen (produktiven) Version 5.1 nun endlich einmal behoben sein könnten. Zunächst funktionierte das Prozedere auch ohne Probleme. Eine schlanke Web-Anwendung konnte in das Deploy-Verzeichnis des JBoss kopiert werden und schon waren die Änderungen im Programmcode verfügbar.

Aber die Freude währte nicht lange. Nachdem einige Bibliotheken hinzukamen und das Projekt wuchs, trat folgendes Phänomen auf: Nachdem das war-Archiv ins Deploy Verzeichnis kopiert wurde, wurde prompt ein "undeploy" der Anwendung durchgeführt. Anschließend passierte aber leider gar nichts mehr. Es war jedoch zu beobachten, dass der Java-Prozess des JBoss immer mehr Arbeitsspeicher allokierte, und zwar bis zu der mit -Xmx eingestellten Höchstgrenze von einem Gigabyte. Dann brach der Prozess anscheinend ab und der Speicher wurde wieder freigegeben. Der Vorgang begann dann wieder von vorne.

Nach einigem Probieren war dann die Lösung klar: Der JBoss hat anscheinend Probleme damit, ein Hot-Deployment mit war Archiven durchzuführen. Sobald das war Archiv wiederum in ein ear-File gepackt wurde, funktionierte es ohne jegliche Probleme. Leider hat mich die Lösung dann doch einige Zeit gekostet, von nun an werde ich wohl nicht mehr probieren, ein schlankes war-Archiv im JBoss zu verwenden.

Noch ein Tipp: Bitte für den JBoss 5.1.0 Facelets in der Version 1.1.14 verwenden. Denn bei Version 1.1.13 wurden die Facelet-Seiten schlichtweg ignoriert, sodass keinerlei Facelet-Tags interpretiert wurden. Das traurige dabei: Facelets 1.1.13 wird standardmäßig mit dem JBoss ausgeliefert.

Keine Kommentare:

Kommentar posten