java - Eclipse 内存分析器 - 尝试获取堆转储时出错

标签 java memory weblogic-10.x heap-dump

我正在尝试使用 Eclipse 内存分析器工具 (MAT) 获取堆转储。我正在运行 Weblogic 10.3 应用程序服务器。它是安装了 32 位 Java 的 Windows XP 操作系统。当我尝试使用 MAT 获取运行 Weblogic 的进程的堆转储时,出现以下错误:

Error creating heap dump. jmap exit code = 1
Exception in thread "main" java.io.IOException: Premature EOF
    at sun.tools.attach.HotSpotVirtualMachine.readInt(HotSpotVirtualMachine.java:226)
    at sun.tools.attach.WindowsVirtualMachine.execute(WindowsVirtualMachine.java:88)
    at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:195)
    at sun.tools.attach.HotSpotVirtualMachine.dumpHeap(HotSpotVirtualMachine.java:162)
    at sun.tools.jmap.JMap.dump(JMap.java:224)
    at sun.tools.jmap.JMap.main(JMap.java:122)

Error creating heap dump. jmap exit code = 1
Exception in thread "main" java.io.IOException: Premature EOF
    at sun.tools.attach.HotSpotVirtualMachine.readInt(HotSpotVirtualMachine.java:226)
    at sun.tools.attach.WindowsVirtualMachine.execute(WindowsVirtualMachine.java:88)
    at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:195)
    at sun.tools.attach.HotSpotVirtualMachine.dumpHeap(HotSpotVirtualMachine.java:162)
    at sun.tools.jmap.JMap.dump(JMap.java:224)
    at sun.tools.jmap.JMap.main(JMap.java:122)

感谢任何帮助。

谢谢, 席德

最佳答案

您可以尝试的一件事是使用 jmap 保存转储并在 MAT 中打开它。

使用jps获取进程ID(pid)。

jmap -dump:live,format=b,file=myfile.hprof <processid-from-above>

关于java - Eclipse 内存分析器 - 尝试获取堆转储时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6047774/

相关文章:

java - Spring MVC - 无法读取候选组件类

java.lang.NoClassDefFoundError : Could not initialize class weblogic. wsee.jaxws.spi.WLSProvider

java - ArrayBlockingQueue 上的外部同步

java - 如何让一个jsp页面下载2个文件

java - 3 层架构 - 从较低层通知 gui

c# - 在延续中使用一个对象,确保它在你需要它之​​前不会被释放

java - 碧 Jade 报告 : filling a report throws an exception "Class not found when loading object from file"

PHP 通过引用传递增加了内存使用

ios - 为什么 UIViewController 会留在内存中

java - log4j ,,,cxf ,JSF (com.faces) 日志不会写入文件