右键,Run as ==》Run Conigurations..中的Arguments设置VM argument为:
-XX:+HeapDumpOnOutOfMemoryError
另外一种指定生成文件存储位置:
-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/home/xieyun/test/TestHeapDumpOnOutOfMemoryError.hprof
生成的hprof文件,就在工程目录下。
具体分析请参见后面统一说明。
首先需要添加JVM参数。修改C:\TDDOWNLOAD\apache-tomcat-6.0.32\bin\catalina.bat
打开Tomcat根目录下的bin文件夹,编辑catalina.bat,在set JAVA_OPTS=%JAVA_OPTS%....这句之后加上
if not "%LOGGING_CONFIG%" == "" gotonoJuliConfig
set LOGGING_CONFIG=-Dnop
if not exist "%CATALINA_BASE%\conf\logging.properties"goto noJuliConfig
setLOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
:noJuliConfig
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -XX:+HeapDumpOnOutOfMemoryError
if not "%LOGGING_MANAGER%" == "" gotonoJuliManager
setLOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER% -XX:+HeapDumpOnOutOfMemoryError
启动tomcat:
http://localhost:8080/testHeapDumpOnOutOfMemoryErrorWeb/HeapDumpOnOutOfMemoryErrorServlet生成的hprof文件在:
具体分析请参见后面统一说明。
Jboss需要jdk1.6以上才能支持HeapDumpOnOutOfMemoryError配置。
需要修改C:\TDDOWNLOAD\jboss-6.0.0.Final\bin\run.bat
-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=Z:\test\matTtempFile\TestHeapDumpOnOutOfMemoryError.hprof
发生outOfMemery内存溢出,可以看到我们生成了对应hprof文件。