诊断应用程序错误

如果部署到平台上的应用程序版本未处于预期的状态,请按照以下故障诊断过程,执行相应的操作。

开始之前

在 CICS Explorer®中,使用 CICS ® Cloud 透视图中的 Cloud Explorer 视图来检查应用程序版本的状态。 检查应用程序的状态 说明如何使用视图并列出应用程序版本和管理部件的状态的可能值。 如果应用程序版本的管理部件所引用的 CICS 束已安装在 CICS 区域中,并且所有这些束都已启用,那么将启用应用程序版本。 在 CICS TS 5.2中的 CICS 区域中,已启用的应用程序版本尚未可供调用者通过其应用程序入口点使用。 当应用程序版本可用时,应用程序入口点以及这些入口点为该应用程序控制的资源即可供调用者使用。

过程

  • 如果应用程序版本的状态为 FAILED ,请检查 CICSPlex ® SM 输出日志 (EYULOG) 以获取安装或废弃应用程序版本时发生的问题的详细信息。
    CMAS 的 CICSPlex SM 数据存储库可能已满,在这种情况下,您需要增大其大小。 要扩展数据存储库,请使用 IDCAMS 实用程序的 REPRO 函数。 执行此操作的 JCL 的示例是 CICSTS53.CPSM.SEYUSAMP 库的 EYUJXDRP 成员。 在此 JCL 中的 RECORDS(xx,yy) 语句上,指定适合于您的环境的主要 (xx) 和辅助 (yy) 值。 初始值是 500 和 3000。
  • 如果应用程序版本的状态为 DISABLED 或 SOMEDISABLED ,请尝试启用整个应用程序版本。
    1. 在 Cloud Explorer 视图中,右键单击应用程序版本,然后选择 启用
      如果应用程序版本在应用程序描述符编辑器中打开,请使用 "概述" 选项卡上的 启用 按钮。
      CICSPlex SM 尝试在所有 CICS 区域中启用应用程序版本的所有 CICS 束。
    2. 请检查新状态以查看该应用程序版本现在是否已启用。
      如果未启用应用程序版本,请调查每个管理部件中指定的各个 CICS 束。
      在 Cloud Explorer 视图中,使用应用程序层次结构,展开在应用程序下显示的每个区域类型以显示该区域类型的“束”列表。 展开每个束列表以显示应用程序的管理部件。
  • 如果管理部件的状态为 DISABLED 或 SOMEDISABLED ,请尝试在安装了这些部件的每个 CICS 区域中启用各个 CICS 束。
    1. 双击管理部分以打开 "CICS 束" 视图,该视图显示已安装的 CICS 束。 或者,右键单击管理部件,然后单击显示已安装的束
    2. 在 "CICS 束" 视图中,选择要在其中启用 CICS 束的 CICS 区域中的 CICS 束的记录,右键单击并选择 启用
    3. 如果 CICS 束仍然处于禁用状态,请检查其定义,以了解它是否依赖于 CICS 区域中不存在的资源的导入。
    提示: 如果禁用了包含应用程序专用 LIBRARY 资源定义的 CICS 束,那么 CICS 不会尝试从应用程序的任何其他专用 LIBRARY 并置或全局搜索顺序中的公共 LIBRARY 并置装入程序模块。 相反,会将 找不到 响应返回到任务。 此操作可避免装入错误程序的可能性,并使工作负载管理能够将工作从 CICS 区域路由到其他区域。 因此,必须启用包含 LIBRARY 资源定义的所有 CICS 束,以便为应用程序执行程序装入。
  • 如果应用程序版本的状态为不完全或 EMPTY ,请调查每个管理部件中指定的各个 CICS 束。
    1. 在 Cloud Explorer 视图中,使用应用程序层次结构,展开在应用程序下显示的每个区域类型以显示该区域类型的“束”列表。 展开每个束列表以显示应用程序的管理部件。
      要使用已安装的 CICS 束,请双击管理部件以打开 "CICS 束" 视图。 或者,右键单击管理部件,然后单击显示已安装的束
    2. 如果管理部件的状态为 INVALIDSCOPE ,请检查 CICS 束的定义,以查看是否正确指定了目标 CICS 系统组。
    3. 如果管理部件的状态为 EMPTY ,请检查应该安装了 CICS 束的 CICS 区域是否处于活动状态并连接到 CMAS。
      要检查 CICS 区域是否处于活动状态,请切换到 Cloud Explorer 视图中的平台层次结构。 对于安装了应用程序的平台,展开区域类型,然后展开每个区域类型的 "区域" 列表以显示 CICS 区域及其状态。
      如果 CICS 区域可用,请检查 CICS 束的定义中是否存在任何错误。
    4. 如果管理部件的状态为 "未完成" ,请查看受影响束的区域类型中 CICS 区域的 CICSMSG 日志,以获取有关未安装束的原因的更多信息。
      如果找不到 CICS 束,请检查 zFS 设置。
      • 如果某个平台分布于同一综合系统中的不同系统 (LPAR),但是 zFS 文件系统中的平台主目录并未在整个综合系统中共享,那么会发生此错误。 您必须使用 FTP 与运行 CMAS 的 zFS 连接,或者将平台主目录设置为在整个综合系统范围共享。
      • 如果您的平台主目录所在的综合系统与安装平台的综合系统不同,那么也可能会发生此错误。 请确保平台主目录位于您安装平台的综合系统上。
  • 如果您遇到有关已为应用程序版本安装到 CICS 区域中的专用资源的问题,请调查各个专用资源。
    1. 在 Cloud Explorer 视图中,双击已安装的应用程序版本的名称以在联机应用程序编辑器中将其打开,然后选择“专用资源”选项卡。
      要根据安装所在的 CICS 区域来过滤专用资源,请在“结构”窗格中选择区域层次结构。 另外,要根据定义所在的 CICS 束来过滤专用资源,请在“结构”窗格中选择束层次结构。
    2. 选择适用于资源类型的相应选项卡来查看针对应用程序安装的专用资源。 检查所有相应 CICS 区域中提供的每个预期的专用资源,并检查专用资源的状态和详细信息以查看是否存在任何异常。
      要使用专用资源,请双击该资源名称以在编辑器中将其打开。
    3. 如果应用程序具有专用 LIBRARY 资源,请选择 "库 DS 名称" 选项卡以查看 z/OS® 为数据集的每个 LIBRARY 并置生成的 DD 名称。 请检查是否正确创建了这些数据集。
  • 如果执行 使其可用 操作以使应用程序版本可供调用者使用,但可用性状态未显示为 AVAILABLE ,请首先验证是否需要该操作。
    1. 如果根本未显示应用程序版本的可用性状态,那么这对于仍处于 CICS TS 5.1的 CICS 区域是正确的。 使其可用操作不适用于这些区域中的应用程序,但是处于 ENABLED 状态时即可供调用者使用。
    2. 如果应用程序版本的可用性状态显示为 无入口点 (即状态 NONE) ,那么应用程序没有应用程序入口点,因此不需要 使其可用 操作。
      应用程序入口点用于控制用户在多版本控制环境中对应用程序版本的访问,因此您应该在应用程序中声明 PROGRAM , TRANSACTION 或 URIMAP 资源的应用程序入口点。
  • 如果执行 使应用程序版本可供调用者使用 操作,并且该操作是必需的,但应用程序版本的可用性状态在很长一段时间内仍为 UNAVAILABLE 或 SOMEAVAIL ,请调查应用程序版本的各个管理部件。
    在 Cloud Explorer 视图中,使用应用程序层次结构,展开在应用程序下显示的每个区域类型以显示该区域类型的“束”列表。 展开每个束列表以显示应用程序的管理部件。
    1. 如果管理部件的可用性状态显示为 无入口点 (即状态 NONE) ,那么 CICS 束不包含任何应用程序入口点语句,因此您无需对其进行调查。
    2. 如果管理部件的可用性状态显示为 AVAILABLE ,那么 CICS 束中声明的应用程序入口点已成功可供调用者使用,因此您无需对其进行调查。
    3. 如果管理部件的可用性状态显示为 UNAVAILABLE 或 SOMEAVAIL ,请检查表示为 CICS 束安装的资源的各个 CICS 束和束部件的状态。
      要使用已安装的 CICS 束,请双击管理部件以打开 "束" 视图。 或者,右键单击管理部件,然后单击显示已安装的束。 要查看为 CICS 束安装的各个资源的束部件,请在 "束" 视图中右键单击 CICS 束名称,然后单击 显示束部件
      检查是否有任何以下情况适用:
      • 应用程序入口点在 CICS 束中声明,其操作名称与应用程序中其他位置使用的操作名称重复。 为避免这种情况,请确保操作名称在应用程序中是唯一项。 操作名称区分大小写,因此您可以使用仅按大小写区分的操作名称,例如 browseBrowse
      • 在 CICS 束中声明为应用程序入口点的 URIMAP 资源不存在,或者已保留为其他应用程序的应用程序入口点。 为避免这些情况,请在环境中定义具有唯一名称的 URIMAP 资源。
      • 在 CICS 束中声明为应用程序入口点的程序是在随应用程序版本一起部署的其中一个 CICS 束中定义的专用程序。 但是,具有该名称的程序已作为公共程序安装在 CICS 区域中。 声明为应用程序入口点的程序必须使用环境中唯一的 PROGRAM 资源名称。 为避免此情况,在其资源定义和应用程序入口点声明中重新命名专用程序,使其名称唯一。 由于 CICS 管理将专用 PROGRAM 资源提升为应用程序版本的公共状态,因此定义为应用程序入口点的同一专用 PROGRAM 资源的多个版本可以为同一应用程序的多个版本进行安装。
      • 先前版本的应用程序将未在随应用程序版本一起部署的其中一个 CICS 束中定义且已作为公共程序安装的程序声明为应用程序入口点。 启用应用程序版本后, CICS 会保留已安装的公共程序作为应用程序入口点。 但是, CICS 现在无法自动管理应用程序新版本的应用程序入口点,因为在应用程序之前安装的公共程序无法成为专用程序。 要将应用程序更新到新版本,您将需要禁用并废弃现有版本。 要避免此情况,可以安排由应用程序安装过程自动安装该公共程序,此时该程序可以变为专用程序,同时还允许安装未来的应用程序版本。 或者,您可以在随应用程序版本一起部署的其中一个 CICS 束中定义程序,确保该程序具有唯一名称,从而使其成为专用程序。
  • 如果无法禁用应用程序版本,请检查是否已对应用程序版本执行了 使其不可用 操作 (如果需要)。
    1. 在 CICS TS 5.2中的 CICS 区域中,如果应用程序版本的可用性状态显示为 AVAILABLE ,那么在禁用应用程序版本之前,必须执行 使其不可用 操作以使该应用程序版本对调用者不可用。
    2. 如果您的平台包含仍处于 CICS TS 5.1的任何 CICS 区域,那么 使其不可用 操作不适用于这些区域中的应用程序。 不会显示它们的空闲状态。
    3. 如果任何应用程序没有应用程序入口点,那么这些应用程序不需要 使其不可用 操作。 其可用性状态显示为 无入口点
  • 如果应用程序在需要时不可用,并且您已执行 禁用 操作,但应用程序版本仍处于 DISABLE 状态,请调查每个管理部件中指定的各个 CICS 束。
    1. 在 Cloud Explorer 视图中,使用应用程序层次结构,展开在应用程序下显示的每个区域类型以显示该区域类型的“束”列表。 展开每个束列表以显示应用程序的管理部件。
      要使用已安装的 CICS 束,请双击管理部件以打开 "CICS 束" 视图。 或者,右键单击管理部件,然后单击显示已安装的束
    2. 在 "CICS 束" 视图中,找到尚未禁用的任何 CICS 束。 在尚未禁用 CICS 束的 CICS 区域中选择该束的记录,右键单击并选择 禁用
    3. 如果仍未禁用 CICS 束,请在 "束部分" 视图中查看其束部分,以确定并检查为 CICS 束安装的各个资源的状态。
      要查看束部件,请在 "束" 视图中右键单击 CICS 束名称,然后单击 显示束部件
    4. 检查 CICS 束中定义的任何 LIBRARY 或 PROGRAM 资源的状态。
      直至动态程序 LIBRARY 并置及从中装入的所有程序均具有一个使用计数零,与 LIBRARY 资源关联的 BUNDLEPART 资源才会报告 DISABLED 的状态。 对于 PROGRAM 资源,虽然当在安装了该资源的 CICS 束上执行禁用操作时, CICS 会禁用该程序,但关联的 BUNDLEPART 资源将保持启用状态,直到该程序的使用计数达到零为止。 如果在可接受的时间间隔后 use-count 未达到 0 ,那么可能需要从 CICS 清除工作,以便可以完成束禁用过程。
    5. 检查 CICS 束中定义的任何 JVMSERVER 或 TCPIPSERVICE 资源的状态。
      缺省情况下,除非所有当前任务已结束对这些资源的使用,否则不会禁用这些资源。
      • 对于 JVMSERVER 资源,如果要立即禁用 JVM 服务器并清除其中运行的任务,请对 CICS 区域中动态生成的资源使用 SET JVMSERVER PURGE , FORCEPURGE 或 KILL 命令。 您可以在 CICS Explorer中执行此操作。
      • 对于 TCPIPSERVICE 资源,如果要立即禁用服务并关闭所有连接,请对 CICS 区域中动态生成的资源使用 SET TCPIPSERVICE IMMCLOSE 命令。 您可以在 CICS Explorer中执行此操作。
      除非已对 CICS 束执行 禁用 操作,否则不能使用这些方法来禁用资源。
    6. 检查 CICS 束中定义的任何 FILE 资源的状态,还检查 CICS 消息日志以获取消息 DFHFC6043
      当您尝试禁用在 CICS 束中定义的文件,但该文件仍在使用中,或者对该文件存在保留锁定时, CICS 会发出此消息。
      • 如果该文件处于 DISABLED 状态,并且 CICS 已发出消息 DFHFC6043,那么对于可恢复文件,请检查并解决保留的锁定。 对于不可恢复文件,检查正在使用该文件的任务,并清除这些任务或延长时间以使这些任务完成。 当相应的过程完成时, CICS 束将进入 DISABLED 状态。
      • 如果该文件处于 DISABLING 状态,那么可以发出以下任何命令以清除正在使用该文件的任务并禁用该文件:
        • EXEC CICS SET FILE DISABLED FORCE
        • EXEC CICS SET FILE CLOSED FORCE
        • CEMT SET FILE FORCECLOSE
        清除任务后, CICS 束将进入 DISABLED 状态。 请注意,使用 FORCE 选项关闭文件会导致 CICS 任务 FORCEPURGE 机制立即停止该文件的任何当前用户的任务。 此机制不保证数据完整性。 在某些极端情况下 (例如,如果在回退处理期间发生错误) , CICS 可能会异常结束。 因此,只有在特殊情况下才使用 FORCE 选项关闭文件。