当Tomcat运行OutOfMemory时获取堆转储

时间:2015-08-12 06:41:48

标签: java tomcat out-of-memory

我想获取hprof文件(dump)来分析OOME。

应用程序部署在tomcat中,它作为Windows服务运行。我使用此link更改了我的 for(int m = 0 ; m < filepath.length; m++) { String firstValue= filepath[m]; Log.e("Image is ","firstValue = " + firstValue); for(int n = 0; n < mStringArray.length; n++) { String SecondValue = mStringArray[n]; Log.e("Image is ","Secondvalue = " + SecondValue); if(firstValue.equalsIgnoreCase(SecondValue)) { Log.e("Image is ","Equal"); } else { Log.e("Image is ","Not Equal"); } } } 文件,并尝试放置catalina.bat文件。 然后我在应用程序中手动生成内存不足。

我可以看到应用程序内存不足,但转储从未创建,我在这里遗漏了什么?

但是在我的本地开发环境中,当我使用setenv.bat创建转储时,转储已成功创建。

1 个答案:

答案 0 :(得分:0)

我尝试了很多东西,最后我发现当tomcat服务从tomcat.exe设置作为服务启动时,catalina.bat的环境变量将无效,因为这个tomcat有提供tomcat7w.exe这已存在于/bin目录中。

但是,在将tomcat配置为Windows服务时,您已将该服务的名称更改为fooBar,然后您需要将tomcat7w.exe重命名为fooBarw.exe,然后您可以配置不同的变量在控制台窗口中。