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