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