Lai*_*son 10 java heap tomcat hudson tomcat6
我正在尝试使用Tomcat,它目前作为服务在Windows 2003机器上运行,转储堆上OutOfMemoryError
.
(Tomcat正在运行Hudson,它正在我的构建的尾端报告堆空间问题.手动运行构建不会产生这样的错误.Hudson家伙需要堆转储才能开始.)
正如其他地方所指示的那样,我已经告诉Apache Service Monitor配置JVM,它OutOfMemoryError
通过在JVM选项中添加以下内容来运行Tomcat来转储堆:-XX:+ HeapDumpOnOutOfMemoryError然后我再次运行构建.果然,它报告存在堆错误.我扫描整个磁盘,寻找默认java_pid123.hprof
文件(显然123
由JVM的PID代替).任何.hprof
地方都没有文件.
我遇到了陷阱22:我需要哈德森人员的堆转储来修复他们的内存泄漏,但如果我在Tomcat下运行Hudson,我就无法获得堆转储.
当Tomcat作为Windows服务运行时,是否有一些特殊方法可以在OutOfMemoryError上从中获取堆转储?
我尝试过的另一件事是在Startup和Shutdown选项卡上告诉它使用"Java"选项而不是"jvm"选项.我相信这应该告诉Service Manager尝试使用Java可执行命令启动Tomcat而不是jvm.dll
直接启动它.当我这样做时,服务将无法启动.
当然其他人有类似的问题?
在最后把这个放到床上之后,我想对可能有同样问题的其他人回答这个问题.
首先,如果您在Windows上安装Tomcat,请不要使用.exe
安装程序,即使它是由Apache提升的.无论你做什么,它都不会让你将Tomcat作为系统帐户以外的任何东西运行.系统帐户似乎没有.hprof
在当前目录中写入文件的权限,并且没有任何Windows安全性调整可能会使此问题消失.
好的,所以你已经从.zip
发行版中安装了Tomcat .使用service.bat
脚本将其安装为服务.确保将其设置为以专门为此目的创建的特定用户身份运行.还要确保在堆转储的情况下,您希望Tomcat写入的文件夹是该用户可写的.
编辑service.bat
文件以-XX:+HeapDumpOnOutOfMemoryError
将-XX:HeapDumpPath=C:\whatever
选项和选项包含在正确的位置(您可以在其中放置JVM选项).这应该够了吧.
归档时间: |
|
查看次数: |
13377 次 |
最近记录: |