快速业务通道

Java技术,IBM风格: 监视和判断问题 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
SIGQUIT events filter= label=C:\home\javacore.%Y%m%d.%H%M%S.%pid.txt  // location and name of file range=1..0                   // write on every event occurrence priority=10                   // write after higher priority dumps request=exclusive                // obtain exclusive access to walk the VM opts= ---------------------- dumpFn=doJavaDump                // Generate java dump file events=uncaught                 // on uncaught exceptions filter=java/lang/OutOfMemoryError        // that match OutOfMemoryError label=C:\home\javacore.%Y%m%d.%H%M%S.%pid.txt  // location and name of file range=1..4                   // write only on the first four events priority=10                   // write after higher priority dumps request=exclusive                // obtain exclusive access to walk the VM  opts= ---------------------- 

Java技术,IBM风格: 监视和判断问题(6)

时间:2011-01-30 IBM Chris Bailey

可以通过修改语法来添加其他转储。要在发生未捕捉的套接字异常时生成 Java 转储,使用以下语法:

-Xdump:java:events=uncaught,filter=java/net/SocketException

要删除所有堆转储,使用以下语法:

-Xdump:heap:none

使用转储引擎能够实现什么?

可以使用转储引擎的功能解决 IBM SDK 本身中的问题;更重要的是,可以利用它们解决 Java 应用程序中的问题。在发生 OutOfMemoryErrors 时能够生成 Java 转储文件和堆转储,因此能够诊断内存泄漏并分析任何大对象的堆栈。能够在发生其他异常时生成 Java 转储文件,因此能够使用转储中的线程堆栈数据来调试潜在的竞争状态。

另外,在发生各种事件时能够创建非破坏性的系统转储,这意味着可以使用 DTFJ API 研究在发生事件时 Java 应用程序的任何部分的状态。

Diagnostic Toolkit and Framework for Java

DTFJ API 是一个基于 Java 的 API,工具的编写者可以使用它访问关于 Java 进程的信息,这只需要有进程映像的快照(例如,系统转储),工具的编写者不需要了解各种系统转储格式以及 Java 对象和其他 Java 结构在内存中的布局方式。

正如前面提到的,Java 运行时的 IBM 实现能够使用跟踪或转储引擎创建非破坏性的系统转储。另外,还可以使用 com.ibm.jvm.Dump.SystemDump() 静态方法创建非破坏性的系统转储。还可以使用操作系统工具获得同样的结果,例如 AIX® 上的 gencore 或 Linux 上的 gcore。

创建非破坏性的系统转储使工具能够使用 DTFJ API 从正在运行的系统获得信息,还可以对发生故障和已经关闭的系统进行分析。

体系结构

DTFJ API 是一个分层的接口,它独立于运行时实现:这个 API 本身可以用于多种操作系统和硬件平台、多种虚拟机实现和多种语言。DTFJ API 中包含的基本扩展集针对的是 Java 运行时,因此使工具的编写者能够了解和探察 JVM 数据结构,Java 运行时的 IBM 实现附带的 DTFJ 实现能够提供关于这些运行时中的数据结构的信息。

这个 API 本身受到了 Reflection API 的深刻影响,并结合了 Java 进程的一个层次化视图,这个视图使用 Iterator 访问从高层对象到更特定对象的各个对象。这提供了许多可用的数据对象,从进程的 Image 到单独的 JavaField 和 JavaMethod 对象,可以探察这些对象来获得在建立系统转储时它们包含的数据。图 1 给

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号