Beim JBoss Application Server tritt immer wieder das Problem auf, dass nach mehreren Deployments folgende Exception von der VM geworfen wird:
java.lang.OutOfMemoryError: PermGen space
Verursacht wird dieser Fehler vermutlich durch ein Speicherleck im ClassLoader. In der Produktion stellt dies kein Problem dar, da in einer produktiven Umgebung nicht so oft deployed wird. Für einen Entwickler ist dieses Problem jedoch äußerst lästig. Das Problem kann nicht ohne größeren Eingriff im Sourcecode von JBoss Application Server behoben werden. Man kann das Problem jedoch herauszögern indem man den Speicher entsprechend erhöht:
Dazu muss in der Datei ${JBOSS_HOME }/bin/run.bat zu der der Variable JAVA_OPTS folgende Optionen hinzufügt werden:
-XX:+CMSPermGenSweepingEnabled -XX:MaxPermSize=128m
So, dass die Zeile
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
wie folgt aussieht:
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -XX:+CMSPermGenSweepingEnabled -XX:MaxPermSize=128m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
Damit wird der PermGenSpace von 64 MB auf 128 MB erhöht. Auf diese Weise kann man sich das lästige Neustarten des Servers nach mehrfachen Deployments sparen.
Ähnliche Artikel:



Letzte Kommentare