IBM的Java诊断,第4部分 - 编程入门网
IBM的Java诊断,第4部分时间:2011-11-02 IBM Helen Beeken使用分析模块扩展 IBM Dump Analyzer for Java 编写自己的分析程序 简介:本系列的第一篇文章 介绍了 IBM Dump Analyzer for Java(或者Dump Analyzer)。您已经了 解了它的功能、如何获取以及运行方式。在开始这篇文章之前,您应该温习一下上一期的文章,确保您已 经完全理解了 Dump Analyzer 的工作原理。 Dump Analyzer 工具的一个关键方面是它具有可扩展 性。它是由一组分析模块 组成,每个模块负责对转储的一个特定方面进行分析,并帮助诊断特定类型的 问题。本文将逐步说明如何编写新的分析模块以及如何在 Dump Analyzer 内部运行它。 概述 Dump Analyzer 的构建基础是 Diagnostic Tooling Framework for Java(DTFJ),后者是 IBM 的 Java 平台实现的一部分。如果您想要编写一个 Dump Analyzer 分析模块,您应当熟悉 DTFJ。 Dump Analyzer 工具的目标就是提供一种已经基本构建完成的环境,供特定的分析模块在其中运 行。首先,JVM 必须已经生成了系统转储并且使用 jextract 工具进行了格式化。Dump Analyzer 首先选 择一个合适的映像工厂(将读取格式化后的转储),然后再读取文件来创建描述内存内容的 DTFJ Image 对象。随后为转储中的每个 Java 运行时构建独立的分析上下文。最后,选择一个特定分析模块在这些上 下文中运行。 分析模块在运行时会访问全部的 Image,但它主要针对它所分析的特定 Java 运行 时进行访问。此外,它将利用各种不同的工具来生成报告、报告进程和错误。也可以使用很多实用类来简 化分析程序的编写。随着时间的推移,我们的团队期望在编写分析程序和分离有用基础架构时能够提供更 多的实用类。 您可能需要构建三种类型的分析模块。第一种模块将运行并得出关于所分析的运行 时内容的结论。结论类似于 “the JIT is active”、“there are deadlocks” 、“this dump was caused by an application error” 或 “this dump contains WebSphere® classes”。第二种类型生成一个报告描述有关 Image 内容的详细信息。在尝试诊 断应用程序故障时可以使用这些报告。当然,这些报告会包含有关潜在错误的警告消息并列出转储内容。 这两种类型的模块都应使用 Java 语言编写,本文将使用术语分析程序(analyzer)指代任意类型的分析 模块。 通常,第一种分析模块得出的结论将由另一种分析模块进一步进行检查,尝试诊断特定故障或提供推 荐操作。最后,您应该能够生成类似如下内容的推荐操作: 如果转储是由保护故障引起…… ……当前线程处于本地代码中…… ……当前的本地代码位于包 com.acme 中…… ……建议您联系 ACME Industries 以做进一步分析。 这些类型的规则可以使用 Dump Analyzer 中附带的脚本语言编写。这种脚本代表了第三种类型的分析 模块。Dump Analyzer 在设计时就考虑了简单性并且没有使用循环结构。在脚本内部,可以请求特定的分 析操作并输出一些结论。这些脚本本身并没有实际执行分析,而是将其他分析模块在逻辑上链接起来。 IBM的Java诊断,第4部分(2)时间:2011-11-02 IBM Helen Beeken设置 无需执行任何特殊设置编写分析模块;访问需要的 JAR 文件即可。因此,本文假定您已经根据本系列 第一篇文章中的说明通过 ISA 下载并安装了 Dump Analyzer。很多编程人员使用 IDE 进行开发。因此本 文也详细说明了如何设置 Eclipse 环境,使用它开发分析模块。当然,也可以使用其他的 IDE,但是本 文主要针对 Eclipse。 要在 Eclipse 中开发分析模块,您需要执行以下操作: 下 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |