如何确保Tomcat6在Windows上读取CATALINA_OPTS?

我在Windows2003计算机上运行了Tomcat6。我在此服务器上部署了2个Grails应用程序,很快我注意到在部署后的某个时间,一切都崩溃了,并出现经典的PermGen错误。

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

...

因此,我找到了解决此问题的通用方法:使用以下方法增加堆和permgen空间:

set CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m"

添加到C:\ apache-tomcat-6.0.26 \ bin \

catalina.bat中。不幸的是,这没有用,但是问题是我不确定Tomcat是否正在接受它。我检查了各种日志,但这些选项从未打印出来。有没有一种方法可以记录它们并确保Tomcat已读取它们?

编辑:我试图与tomcat6w.exe添加以下JVM选项:

-XX:+CMSClassUnloadingEnabled

-XX:+CMSPermGenSweepingEnabled

-XX:+UseConcMarkSweepGC

并没有改变。2-3分钟的正常运行时间后,我得到了permGen。还有其他想法吗?

干杯! 慕罗尼

回答:

谢谢你们!我终于通过添加以下内容解决了该问题:

-XX:+CMSClassUnloadingEnabled

-XX:+CMSPermGenSweepingEnabled

-XX:+UseConcMarkSweepGC

-XX:PermSize=128m

-XX:MaxPermSize=512m

到tomcat6w.exe上的Java选项。

谢谢!

以上是 如何确保Tomcat6在Windows上读取CATALINA_OPTS? 的全部内容, 来源链接: utcz.com/qa/424579.html

回到顶部