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

2024-04-08

我有一个在 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 
...

因此,我找到了解决此问题的常见方法:通过以下方式增加堆和永久代空间:

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 分钟后我会获得永久代。 还有其他想法吗?

干杯! 穆隆


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

-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled
-XX:+UseConcMarkSweepGC
-XX:PermSize=128m
-XX:MaxPermSize=512m 

转到 tomcat6w.exe 上的 java 选项。

Thanks!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何确保Tomcat6在Windows上读取CATALINA_OPTS? 的相关文章

随机推荐