Possiedo un Tomcat6 in esecuzione su un computer Windows2003. Ho distribuito 2 app Grails su questo server e presto ho notato che tutto si stava bloccando a volte dopo la distribuzione con un errore PermGen classico.Come assicurarsi che Tomcat6 legga CATALINA_OPTS su Windows?
java.lang.OutOfMemoryError: PermGen space
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
java.lang.ClassLoader.defineClass(ClassLoader.java:616)
org.codehaus.groovy.reflection.ClassLoaderForClassArtifacts.de
...
Così ho trovato una soluzione comune per questo problema: aumentare mucchio e lo spazio PermGen con:
set CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m"
Aggiunto in C: \ apache-tomcat-6.0.26 \ bin \ catalina.bat. Purtroppo questo non ha funzionato, ma il problema è che non sono sicuro che Tomcat lo stia riprendendo. Ho controllato vari registri ma queste opzioni non sono mai state stampate. C'è un modo per registrarli e assicurarsi che Tomcat li abbia letti?
EDIT: Ho provato ad aggiungere le seguenti opzioni JVM con tomcat6w.exe:
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled
-XX:+UseConcMarkSweepGC
E non è cambiato nulla. Ottengo un permGen dopo 2-3 minuti di operatività. Qualche altra idea?
Cheers! Mulone
Quale java VM stai usando? – Joelio
Buon punto: C: \ Programmi \ Java \ jdk1.6.0_19 \ jre \ bin \ server \ jvm.dll – Mulone
Questo tipo di domanda è per serverfault.com, credo. – Ither