Hello all. I have quite a trouble with JVM/JBoss:
We're developing a multimodule web application. Modified wars (=modules) are sent from continuous integration server to our development JBoss many times a day - this redeploys modified WAR. The same for clients - we'd like to redeploy single modules without restarting the server.
Unfortunately after few redeploys we get PermGen space. Server is useless and must be restarted.
1) When JVM started with -client option I can avoid PermGen space, but from time to time (~1/10 redeploys), I get this:
Cause: Class 'org.richfaces.renderkit.html.SuggestionBoxRenderer' is missing a runtime dependency: java.lang.NoClassDefFoundError: org/ajax4jsf/renderkit/compiler/ElementBase$1 at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:213) at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:196) at org.jboss.web.jsf.integration.config.JBossJSFConfigureListener.contextInitialized(JBossJSFConfigureListener.java:69)
-XX:+TraceClassUnloading, JVM unloads unused classes only when PermGen memory is full. Lots of unused classes from WEB-INF/lib are kept in memory for long time. Couldn't this unloading be done earlier?