java - logo - www tomcat




Posto appropriato in catalina.bat per impostare JAVA_OPTS (4)

Come altri hanno già suggerito che è necessario utilizzare JAVA_OPTS impostato su qualcosa di simile: JAVA_OPTS="-XX:MaxPermSize=98m" . Questo, da solo, probabilmente risolverà i problemi, ma se stai ridistribuendo un sacco di volte e il tuo war / jar è enorme, colpirai anche questo limite di memoria.

Per quest'ultimo scenario, qualcosa di normale su una macchina di prova / sviluppo, ti consiglio di usare:

-XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC

Questa opzione abiliterà lo scarico delle classi non utilizzate.

Guarda qui maggiori dettagli, specialmente i commenti.

Ho ricevuto l'errore qui sotto

"java.lang.OutOfMemoryError: PermGen space"

Nel mio file catalina.bat , dov'è il posto appropriato per inserire il parametro set JAVA_OPTS ? Parte inferiore del file o di qualsiasi altro luogo?


Il posto giusto è quello di creare un nuovo file nella directory Tomcat / bin a fianco di catalina.bat, denominato setenv.bat e posizionare un set JAVA_OPTS=... lì.

Su sistema * nix sarebbe setenv.sh

catalina.bat / catalina.sh si occupa di eseguire setenv.bat / setenv.sh se esiste. Questo è indicato nella sezione 3.4 qui


Nel tuo ambiente. Potremmo creare uno script wrapper che imposta JAVA_OPTS e quindi chiama lo script catalina.


Questo è successo perché ti sei ridistribuito più volte. Puoi aumentare il tuo spazio di perm gen, ma ritarderà solo l'inevitabile errore.

Dovrai solo riavviare il tuo server. Non sono a conoscenza di una soluzione alternativa.





tomcat