【发布时间】:2011-07-18 08:40:06
【问题描述】:
我们有一种情况,我们希望能够创建一个 zip 文件,其中包含尽可能多的有关当前正在运行的 Java 程序(可能正在停止运行)的信息,以便进行事后取证分析。我们目前部署到 Java 5,但 Java 6 的特性也很有趣。
到目前为止,我已经想到了:
- 以编程方式生成的线程转储。这似乎在 Java 6 中效果更好。
- 过去 X 分钟记录的日志事件。我们目前使用 logback 或 java.util.logging。
- 一些序列化的对象。
- 外部环境 - 所有系统属性。
JVM 信息还有什么用处?
是否有可能以通用方式遍历调用堆栈并查看参数? (或者这是否需要 JVMTI 或等效项)。它是一个 IBM JVM,所以我们不能使用 jvisualvm 和 Attach API。
【问题讨论】:
-
仅供参考:您可以将 VisualVM 与显式 JXM 连接一起使用。请参阅例如3rdstage.blogspot.com/2010/12/using-visualvm-with-ibm-jdk.html 了解更多详情。