WEB开发网
开发学院软件开发Java IBM 的 Java 诊断,第 4 部分: 使用分析模块扩展 ... 阅读

IBM 的 Java 诊断,第 4 部分: 使用分析模块扩展 IBM Dump Analyzer for Java

 2010-04-01 00:00:00 来源:WEB开发网   
核心提示: 从上面的示例可以看到,必须实现两种方法: getShortDescription() 和 doAnalysis(),IBM 的 Java 诊断,第 4 部分: 使用分析模块扩展 IBM Dump Analyzer for Java(6),doAnalysis() 方法的目的是从转储中提取信息并以

从上面的示例可以看到,必须实现两种方法: getShortDescription() 和 doAnalysis()。doAnalysis() 方法的目的是从转储中提取信息并以名称/值对的方式返回。这些信息将通过使用 AnalyzerBase(能够处理一些简单的分析规则)的默认行为进行进一步分析。针对名称/值对集使用各个规则并选择一个特定的名称对值进行检验。在清单 1 中,如果名称为 processorCount 的一项的值大于 1,规则处理结果将为真(true)。

要查看分析模块的运行,可跳至 “运行分析程序” 一节。

实现 IReport 的分析程序

在创建实现 IReport 接口的分析模块时,可遵循上一节中介绍的新类创建步骤。但是,这一次应该在 New Class 向导中输入以下信息:

Name:DWReport

Superclass:使用 Browse 按钮添加 com.ibm.dtfj.analyzer.base.AnalyzerBase

Interfaces:使用 Add 按钮添加 com.ibm.dtfj.analyzer.ext.IReport

清单 2 中的代码演示了可以实现 IReport 接口的类。这个简单的示例将输出创建转储的机器的类型。这个类没有制定任何决策,它的惟一功能就是创建一个报告。将清单 2 中的内容输入新创建的 DWReport 类中,以继续本文的示例。

清单 2. 实现 IReport 的分析程序

package mypackage; 
 
import com.ibm.dtfj.analyzer.base.AnalyzerBase; 
import com.ibm.dtfj.analyzer.base.AnalyzerContext; 
import com.ibm.dtfj.analyzer.ext.IAnalysisReport; 
import com.ibm.dtfj.analyzer.ext.IAnalyzerContext; 
import com.ibm.dtfj.analyzer.ext.IReport; 
import com.ibm.dtfj.image.DTFJException; 
import com.ibm.dtfj.image.Image; 
 
/** 
 * This is the basic design required to implement an IReport Interface 
 */ 
public class DWReport extends AnalyzerBase implements IReport { 
 
  private static String description = "DWReport example"; 
 
  public DWReport() {} 
 
  /* 
   * (non-Javadoc) 
   * @see com.ibm.dtfj.analyzer.base.AnalyzerBase#getShortDescription() 
   */ 
  public String getShortDescription() { 
    return description; 
  } 
 
  /* 
   * (non-Javadoc) 
   * @see com.ibm.dtfj.analyzer.ext.IReport#produceReport() 
   */ 
  public IAnalysisReport produceReport() { 
    IAnalysisReport ret = allocateReport(); 
 
    IAnalyzerContext ctx = getContext(); 
 
    if (ctx instanceof AnalyzerContext) { 
      try { 
        Image p = ((AnalyzerContext)ctx).getCurrentImage(); 
        ret.printLiteral("Image created on " + p.getSystemType()); 
      } catch (DTFJException e) { 
        e.printStackTrace(); 
      } 
    } 
 
    return ret; 
  } 
} 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:IBM Java 诊断

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接