使用策略诊断错误
使用此信息可帮助您确定可能影响策略的错误源。
你的问题是什么?
提示:
- IBM® CICS Explorer® 中的云视角和 z/OS® 上的 CICS® 日志在调试策略问题时都很有用。
- 设置策略阈值时,请始终使用统计数据; 不要依赖代码的静态分析。
策略安装失败
您应该始终使用 CICS Explorer 提供的策略编辑器来创建 CICS 策略。 这将确保策略 XML 文件符合模式。
由于通过多个 APAR 将策略规则引入到 CICS 发行版中,因此您的策略 XML 文件可能无意安装到未安装正确 APAR 的 CICS 区域中。 有关受支持的规则条件和最低 CICS 发行版的列表,请参阅 策略模式版本。
下面列出了此类案例的常见错误消息,以帮助您诊断问题:
- 策略将安装到具有无法支持策略中的模式级别的发行版的 CICS 区域。 包含策略的捆绑软件已安装但已禁用。
在此情况下,将随 DFHPI1007 一起发出 DFHMP2004 ,其中列出了 CICS首次迂到的违例 XML 标记。
示例: 如果指定了受策略模式版本 5.2支持的任务规则上下文过滤器的策略安装到支持模式版本 (最多 5.0) 的 CICS 区域,那么将按如下所示发出消息:DFHRL0125 我 2020-03-09 12:10:55 IYCIZKE1 HEJEN 正在创建 BUNDLE 资源 POLV54AR BUNDLEID CICSv54Event1 和 V 1.0.0。 DFHPI1007 2020-03-09 12:10:55 IYCIZKE1 CEDA 00046 由于不正确, XML 到数据转换失败 POLICY policyV54APAR的输入 (UNDEFINED_ELEMENT 上下文)。 DFHMP2004 2020-03-09 12:10:55 IYCIZKE1 无法创建 CICS 受管平台域 BUNDLE 资源 POLV54AR 中的策略 policyV54APAR 因为不支持策略模式级别: 0502。 DFHRL0109 我 2020-03-09 12:10:55 IYCIZKE1 CEDA CICS 资源生命周期管理器已创建 BUNDLE 资源 POLV54AR 和 BUNDLE 处于禁用状态。
- 将策略安装到可支持更高模式级别的 CICS 区域,但该区域未安装针对 APAR 的必需 PTF ,该 APAR 提供对策略中使用的模式的支持。 包含策略的捆绑软件已安装但已禁用。
在此情况下,将随 DFHPI1007 一起发出 DFHMP2003 ,其中列出了 CICS首次迂到的违例 XML 标记。
示例: 如果指定了受策略模式版本 5.2支持的任务规则上下文过滤器的策略安装到未安装 APAR PH26145 PTF 的 CICS TS 5.5 区域 (最多支持 6.0的模式版本) ,那么将按如下所示发出消息:DFHRL0125 我 2020-03-09 12:14:26 IYKIZ4E2 HEJEN 正在创建 BUNDLE 资源 POLV54AR BUNDLEID CICSv54Event1 和 V 1.0.0。 DFHPI1007 2020-03-09 12:14:26 IYKIZ4E2 CEDA 00049 由于以下原因, XML 到数据转换失败: 输入不正确 (UNDEFINED_ELEMENT 上下文) 对于 POLICY policyV54APAR。 DFHMP2003 2020-03-09 12:14:26 IYKIZ4E2 无法创建 CICS 受管平台域 BUNDLE 资源 POLV54AR 中的策略 policyV54APAR 因为无法解析策略的 XML 数据。 DFHRL0109 我 2020-03-09 12:14:26 IYKIZ4E2 CEDA CICS 资源生命周期管理器已创建 BUNDLE 资源 POLV54AR 和 BUNDLE 处于禁用状态。
策略中的规则未触发
检查是否满足以下条件:
- 定义规则的策略部署在 CICS 区域上。 部署策略的有效方法是创建和安装 BUNDLE 定义,或者将捆绑软件部署到平台或应用程序。 如果策略部署在平台或应用程序上,那么您可以使用 IBM CICS Explorer 中的 "云" 透视图来查看为特定作用域定义的所有规则。
- 应用程序已安装并启用,并具有关联的入口点。 您可以使用 IBM CICS Explorer 中的 "云" 透视图来检查在平台上安装和启用了哪些应用程序。
- 所有策略作用域都是在应用程序中定义的目标操作名称。 如果未安装关联的策略作用域操作,那么不会触发策略中的规则。 有关定义入口点的更多详细信息,请参阅 定义 CICS Explorer 产品文档中的应用程序入口点。
- 您的策略部署在正确的级别上。 例如,如果在平台上部署具有操作策略作用域的策略,那么该策略不适用于应用程序工作负载。 如果要将策略应用于应用程序,那么必须在应用程序级别上部署该策略,或者在没有策略作用域的平台级别上部署该策略; 在这种情况下,该策略将应用于所有应用程序。
- 应用程序使用由策略规则度量的资源,并将其设置为高于指定阈值的级别。 例如,如果规则正在监视所使用的存储器,请验证应用程序是否使用了足够的存储器来超过阈值。
- 验证任务是否与策略中定义的任务规则条件匹配。
- 如果定义的规则操作为
<event>:- 检查事件处理是否已启动。 CICS 日志中的 DFHMP3011 消息指示策略事件是否由于事件处理已停止而丢失。
- 检查适配器或适配器集是否已安装。 DFHMP3003, DFHMP3004 或 CICS 日志中的 DFHMP3005 消息指示可能缺少哪些工件。
- 如果策略规则类型为 "具有 CPU 时间的时间" 项,请验证是否在达到阈值后重新分派了任务。 有关特定于 "时间" 策略规则类型的处理的更多信息,请参阅 策略规则类型。
策略规则意外触发
- 确保设置切合实际的策略阈值。 根据监控工具(如 CICS Performance Analyzer for z/OS )收集的数据设置阈值。 有关可帮助您确定适当阈值的示例表格的更多信息,请参阅政策和 CICS Performance Analyzer。 如果监视工具不可用,那么可以使用一些 CICS 监视数据来确定策略阈值。 有关更多信息,请参阅 CICS 监视数据以确定任务规则阈值。
- 对于存储和存储请求策略规则类型,阈值计数包括用户任务执行的所有 GETMAIN 请求: 应用程序发出的显式 EXEC CICS GETMAIN 请求和隐式 GETMAIN 请求,其中包括:
- 响应其他 EXEC CICS 命令时发生的请求,例如 EXEC CICS READ FILE SET。
- 通过 Language Environment® 获取的 LE_TWA、LE_RUWA 和 RUWAPOOL 存储。
- 对于 "TD 队列请求" 策略规则类型,请注意,许多产品使用 EXEC CICS WRITEQ TD 来写入各种瞬时数据队列,这可能会导致请求数超过您期望的数目。 有关 TD 队列请求策略规则类型的更多信息,请参阅 策略规则类型。
- 确保正确限定策略的作用域。 如果发现触发策略规则的频率高于预期,请检查策略的作用域是否正确。 例如,如果在应用程序级别限定作用域的策略触发频率过高,请考虑定义一个或多个策略作用域以将策略限制为应用程序的特定操作。 有关策略作用域的更多信息,请参阅 策略作用域。
- 检查您是否具有使用相同阈值和操作定义的重复规则。 如果是这样,您可能会在超过阈值时收到多条消息或事件。 如果策略部署在平台或应用程序上,那么您可以使用 IBM CICS Explorer 中的 CICS Cloud 透视图来查看为特定作用域定义的所有规则。
您的策略搜索未提供期望的结果
如果在平台或应用程序上部署了策略,那么可以使用 IBM CICS Explorer 的 CICS Cloud 透视图中的搜索工具来搜索针对特定作用域定义的规则。 有时,策略搜索可能不会提供期望的结果。 以下是策略搜索可能未提供预期结果的一些原因:
- 在运行时,可能会应用多个作用域的规则。 针对策略规则的查询输出将显示是否应用了多个作用域。 有关更多信息,请参阅 策略作用域。
- 您可能有重复的策略。 例如,可以在部署到同一作用域的不同捆绑软件中具有相同的策略名称,规则名称和阈值。
- 预期的规则根本未部署,或者部署到未包含在搜索条件中的其他作用域。
在策略处理异常终止任务后发生共享存储器泄漏
在策略处理异常结束任务后,您可能会迂到共享存储器泄漏。 发生泄漏的原因是异常终止时,异常终止的程序未释放共享存储器。
重要信息: 在部署包含异常终止策略操作的策略之前,请确保由于策略而可能异常终止的任何任务都会释放他们在异常终止时分配的任何共享存储器。 泄漏是异常终止的结果,而不是策略处理的结果; 如果任务由于任何其他原因 (例如,失控) 而异常终止,那么将发生相同的泄漏。 分配任何共享资源 (例如共享存储器) 的程序必须确保在发生异常终止时释放这些资源,否则将发生资源泄漏。
下一步操作
如果无法解决问题原因,请联系 IBM 支持人员。 确保提供所需的信息,如 收集 CICS 故障诊断数据 (CICS MustGather) for IBM Support的策略部分中所列示。