问题描述
我需要更深入地分析OOM,并且需要找出哪些对象导致oracle的T4CPreparedStatement JDBC层内部的OOM。因此,因此我正在寻找HashMap内部的内容(java.util.Hashtable $ Entry [])。
- HeapDump是否有可能?
- 可以通过JMX连接吗?
我的HeapDump(*。phd文件)是由Websphere Application Server在OOM期间自动创建的。
PS:可能可以在带有IBM Extensions的Eclipse Memory Analyzer Tool中完成,但是如何?
解决方法
PHD文件没有原始字段值或原始数组内容,因此充其量您可以在HashMap中看到键和值的类型。
哈希映射集合查询将失败,并显示:“转储格式'DTFJ-PHD'不支持检查'哈希条目'。”
“按类显示对象”可能有助于查看持有的东西种类:
Class Name | Objects | Shallow Heap ------------------------------------------------------------------ java.util.HashMap | 1 | 40 |- java.lang.Class | 1 | 160 |- java.util.HashMap$Node[] | 1 | 136 | |- java.util.HashMap$Node | 10 | 240 | | |- sun.misc.URLClassPath$JarLoader | 9 | 504 | | |- java.lang.Class | 1 | 160 | | |- java.lang.String | 10 | 160 | | |- java.util.HashMap$Node | 4 | 96 | | |- sun.misc.URLClassPath$FileLoader| 1 | 24 | | '- Total: 5 entries | | ------------------------------------------------------------------
确实需要系统转储。