java - VisualVM - 无法进行堆转储

标签 java visualvm

当我在 VisualVM 1.3.8 中单击堆转储按钮时,出现以下错误:

Cannot take heap dump for user@localhost:9090

我是否遗漏了某处设置?

编辑#1

环境是:

  • RHEL6
  • Tomcat 7.0.68
  • Java 1.7.0_45

选项是:

export CATALINA_OPTS="-Dcom.sun.management.jmxremote=true\
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=true \
-Djava.rmi.server.hostname=x.x.x.x \
-Dcom.sun.management.jmxremote.password.file=/file_to_pwd \
-Dcom.sun.management.jmxremote.access.file=/file_to_access \
-Xms1256m \
-Xmx1256m \
-XX:PermSize=768m \
-XX:MaxPermSize=768m \
-XX:+CMSClassUnloadingEnabled \
-Dfile.encoding=UTF-8 \
-XX:+CMSClassUnloadingEnabled \
-XX:+UseConcMarkSweepGC \
-server"

编辑 #2

这是 JMX 的监听器。

<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="9090" rmiServerPortPlatform="9091" />

最佳答案

这就是我最终做的事情。我们在服务器上还安装了 JDK 1.8。

cd /path/to/java/jdk1.8.0_65/
./jmap -dump:format=b,file=/path/to/dump/tomcat_dump.bin PID

使用 VisualVM 打开 /path/to/dump/tomcat_dump.bin(我不得不使用 Filezilla 将它带到我的工作站)。

关于java - VisualVM - 无法进行堆转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44269640/

相关文章:

java - 在 Java 泛型方法中使用正则表达式

java - VisualVM 中的 "Total loaded"是什么意思?

java - 如何使用 VisualVM 分析 Java 应用程序?

java - VisualVM - "Used heap"中包含什么?

java - quartz 调度程序如何工作?

java - 从 jar 文件提供静态文件

java - 手动调用监听器方法的坏习惯

java - 从 Eclipse 运行 Visual VM

java - Web 应用程序和 Tomcat 7 内存泄漏

java - Tomcat : java.net.ConnectException: 连接被拒绝