Java技术,IBM风格: 监视和判断问题 - 编程入门网
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: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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |