诊断提供程序
诊断提供程序是用于查看应用程序服务器环境中各个组件的配置和当前状态的快速方法。
WebSphere® Application Server 组件可被认为是可分成多个诊断域。诊断域是指一个组件中的一组类,这些类共享一组诊断。一些较大的组件可能具有多个诊断域。例如,“连接管理器”在逻辑上由多个数据源和连接工厂组成,每个数据源和连接工厂都具有单独的诊断域。
图 1. 诊断提供程序. 该图说明了组成诊断提供程序 (DP) 实用程序各个部分之间的关系。

单个诊断域从“诊断提供程序 MBean”中接收诊断服务。“诊断提供程序 MBean”使您可以查询诊断域的启动配置、当前配置和当前状态。另外,“诊断提供程序 MBean”还可以访问诊断域中提供的任何自诊断测试。“诊断提供程序 MBean”的一些特征如下:
- “诊断提供程序 MBean”是 Java™ 管理扩展 (JMX) MBean
- 所有“诊断提供程序 MBean”都会实现一个 DiagnosticProvider 接口,该接口中包括用于配置转储、状态转储和自诊断测试的方法
- “诊断提供程序 MBean”可以显示有关正在运行的组件的信息,因此,管理员更容易调试与这些组件相关的问题。与在 WebSphere Application Server 中运行的其他 MBean 一样,也可以从 JMX 客户机代码或者通过 wsadmin 工具来访问“诊断提供程序 MBean”。
“诊断提供程序 MBean”能够高效地提供配置、状态和自测试信息的
Java 对象表示。这对于程序交互很有用。为了便于人们访问信息,WebSphere Application Server 提供了一组工具来充分发挥“诊断提供程序 MBean”的价值。
- 诊断服务 MBean
- 提供了一些方法来将“诊断提供程序 MBean”输出转换为更符合人们阅读习惯的格式。“诊断服务 MBean”还提供了一些方法,以便于在它所在的服务器上查找“诊断提供程序 MBean”。对于需要通过命令行来访问诊断数据的管理员,可将 wsadmin 工具直接与“诊断服务 MBean”配合使用来获取具备一定格式的结果
- 诊断提供程序实用程序
- WebSphere Application Server 管理控制台中包含的一组面板,管理员可以通过这些面板与“诊断提供程序 MBean”进行交互。诊断提供程序实用程序是管理控制台中的一个简单前端,它提供了每个受管服务器上存在的一组可用“诊断提供程序 MBean”,它可以执行和查看配置转储、状态转储和诊断自测试的结果。
诊断提供程序的用途
诊断提供程序提供了可用于快速发现和诊断系统问题的大量信息。以下方案对管理员使用一个没有诊断提供程序的组件与使用一个具有诊断提供程序的组件时的情况进行了对比。
当管理员使用一个没有诊断提供程序的组件时,情况为如下所示:
- 日志条目指出特定组件发生了问题。
- 系统管理员通过运行时消息面板来查看日志条目。
- 系统管理员不清楚哪里出了问题,于是致电 IBM® 支持机构以寻求帮助,但是可能会错误地描述发生的问题。
当管理员使用一个具有诊断提供程序的组件,并且向该组件的记录器注册了诊断提供程序标识时,情况将变为如下所示:
- 包含“诊断提供程序标识”(DPID) 的日志条目指示特定组件内发生了问题。
- 系统管理员通过运行时消息面板来查看日志条目。
- 管理员单击运行时消息面板上的一个按钮来执行状态转储或配置转储,或者显示组件自测试的一个列表。
- 通过自测试,会警告管理员当前所配置的组件可能会导致性能很低或者发生故障。
而且,当管理员使用一个具有诊断提供程序的组件,但是未向该组件的记录器注册诊断提供程序标识时,情况可能为如下所示:
- 一个不包含 DPID 的日志条目指示组件中发生了问题。
- 系统管理员通过运行时消息面板来查看日志条目。
- 系统管理员使用管理控制台来浏览可用的一组诊断提供程序,并选择一个看起来适合的诊断提供程序。
- 系统管理员对该诊断提供程序运行配置转储、状态转储或自诊断测试,以收集有关该组件的信息。
- 从状态转储中,管理员就可以知道组件状态并不是该组件的工作负载应具有的状态。
- 管理员与测试小组一起协作来确定哪些工作流导致该组件的状态并非预期状态(与反复执行状态转储的效果一样明显)。