Java 的故障诊断

CICS® 诊断信息的许多常用来源都包含适用于 Java 应用程序的信息。 除了 CICS提供的信息外,还有许多特定于 JVM 的接口可用于问题确定。

CICS Java 诊断工具

CICS 具有可以在运行 Java 应用程序时收集的统计信息和监视数据。 发生错误时,事务将异常终止并将消息写入相应的日志。 请参阅 CICS 消息 ,以获取适用于 JVM (SJ) 域的异常终止和消息的列表。 与 Java 相关的消息的格式为 DFHSJxxxx。

您还可以开启跟踪以生成其他诊断信息。 JVM 域的跟踪点列示在 JVM 和 Node.js 运行时域跟踪点中。

初始化后在 CICS 区域中启动第一个 JVM 时, CICS 会发出消息 DFHSJ0207,显示正在使用的 Java 版本。

Java SDK 提供诊断工具和接口,为您提供有关 JVM 中发生的情况的更详细信息。 来自 JVM 的消息和诊断信息将写入 JVM 的 stderr 日志文件。 如果迂到 Java 问题,请始终查阅此文件。 例如,如果 CICS 发出消息以指示 JVM 已异常终止,那么 stderr 日志文件是诊断信息的主要来源。 控制 JVM 输出,日志,转储和跟踪的位置 告诉您如何控制 JVM 输出的位置,以及如何重定向来自 JVM 内部的消息以及来自 JVM 中运行的 Java 应用程序的输出。

为 CICS开发 Java 应用程序时,请务必考虑 CICS中线程安全和事务隔离的要求。 如果 Java 应用程序首次使用时工作正常,但在后续使用时行为不正确,那么问题很可能是由于隔离问题造成的。

OSGi 诊断文件

OSGi 框架在 zFS 中生成诊断文件,您可以使用这些文件来帮助对 JVM 服务器中 OSGi 捆绑软件和服务的问题进行故障诊断:

OSGi 高速缓存
OSGi 高速缓存位于 JVM 服务器的 $WORK_DIR/applid/jvmserver/configuration/org.eclipse.osgi 目录中。 $WORK_DIR 是 JVM 服务器的工作目录, applid 是 CICS APPLID , jvmserver 是 JVMSERVER 资源的名称。 OSGi 高速缓存包含运行框架所需的框架元数据和其他信息。 当 JVM 服务器启动时,将替换高速缓存。
OSGi 日志
如果 OSGi 框架中发生错误,那么将在 JVM 服务器的 $WORK_DIR/applid/jvmserver/configuration/ 目录中创建 OSGi 日志。 文件扩展名为 .log

JVM 诊断工具

CICS 文档提供有关某些 Java 诊断工具和接口的信息:
  • 激活和管理 JVM 服务器跟踪 描述了如何使用 CETR 事务提供的组件跟踪来跟踪 JVM 服务器的生命周期以及在其中运行的任务。 JVM 服务器不使用辅助或 GTF 跟踪。 而是将跟踪写入 zFS 上针对每个 JVM 服务器唯一命名的文件。
  • 调试 Java 应用程序 描述如何使用远程调试器来单步执行 JVM 中运行的 Java 应用程序的应用程序代码。
还有许多诊断工具和接口可用于 JVM。 请参阅 故障诊断和支持 ,以获取有关可用于 JVM 问题确定的更多工具的信息。 以下设施提供有用的诊断信息:
  • 可以直接使用 JVM 的内部跟踪工具,而无需通过 CICS提供的接口。 有关可用于控制内部跟踪工具以及将 JVM 跟踪信息输出到各种目标的系统属性的信息,请参阅 使用 CICS 跟踪进行问题确定。 您可以使用这些系统属性从 JVM 中的任何方法或类输出跟踪,并在方法调用上查找任何参数和返回类型的值。
  • 如果您在 JVM 中迂到内存泄漏,那么可以从 JVM 请求堆转储。 堆转储生成 JVM 堆中所有活动对象 (仍在使用的对象) 的转储。 您还可以使用 IBM® Health Center 和 Memory Analyzer 工具来分析内存泄漏,这两个工具都可用于 IBM Support Assistant。 有关 Java 工具的更多信息,请参阅 IBM Monitoring and Diagnostic Tools for Java - Health Center
  • IBM 64 位 SDK for z/OS®Java Technology Edition随附的 HPROF 概要分析程序提供了在 JVM 中运行的应用程序的性能信息,因此您可以查看程序的哪些部分使用的内存或处理器时间最多。
  • JVM 提供了用于监视,概要分析和 RAS (可靠性,可用性和可维护性) 的接口。

对于并非特定于 CICS 环境的 IBM JVM 的所有可用接口,选项或系统属性,请使用 IBM JVM 文档作为主要信息源。