编写节点错误程序

您可以针对使用 ACF/SNA 接口支持的终端和逻辑单元编写节点错误程序 (NEP)。 CICS® 提供样本节点错误程序,您可以将其用作自己程序的基础。

与非z/OS® Communications Server 设备的终端错误程序一样, SNA 连接的终端的节点错误程序有三种形式可用:
  1. 缺省节点错误程序
  2. CICS提供的样本节点错误程序
  3. 用户编写的版本

如果在应用程序中对 EXEC CICS HANDLE CONDITION TERMERR 命令进行编码,那么应用程序有时可能处理异常情况,而不是使用节点错误程序。 如果节点异常条件程序 (DFHZNAC) 操作 ABTASK (ATNI 异常终止) ,那么将驱动 TERMERR 条件。 TERMERR 条件与应用程序相关,不能替代必须用于会话相关问题的节点错误程序。 处理应用程序中的错误在系统间通信 (ISC) 环境中特别有用。

为何使用 NEP 来补充 CICS 缺省操作

以下是您可能希望编写自己的节点错误程序以添加到 CICS 和 z/OS Communications Server提供的缺省操作的一些原因。
  • 并非所有错误都表示通信系统故障。 某些错误 (例如尝试写入零长度数据) 可能反映应用程序中的特殊情况,需要特殊操作。
  • 除了 DFHZNAC 发送的错误消息外,您可能还希望输出额外数据。 (请注意,不能使用节点错误程序来禁止来自 DFHZNAC 的消息。) 来自 DFHZNAC 和 DFHZNEP 的所有数据输出都将写入瞬时数据队列 CSNE。
  • 在其他情况下,您可能希望更改 CICS生成的诊断信息量: 缺省值随错误类型而变化。 例如,与错误关联的 z/OS Communications Server RPL 可以在您不需要它时打印,也可以在您不需要它时打印。
  • 发生节点错误时,可能要执行与应用程序相关的活动。 例如,如果消息未能传递到终端,那么可能需要重定向到另一个终端。 对于仅通过异常响应发送的消息, CICS 可能没有可用于再次发送该消息的数据,但发出请求的应用程序可能能够重新创建该消息。 例如,如果在将文档发送到打印机期间发出错误信号,那么它可能能够从开头或从特定页面重新启动。
  • 某些设备 (例如, 3650 零售商店系统) 在 "用户感知数据" 字段中返回应用程序类型的数据。 这只能在 NEP 中检索。 NEP 必须捕获并保存数据以用于进一步的应用程序。

缺省 NEP

如果检测到 z/OS Communications Server 存储问题,那么 CICS提供的缺省 NEP DFHZNEP 将设置 "print TCTTE" 操作标志 (用户选项字节 TWAOPT1; 请参阅 TWAOPTL-用户选项字节); 否则,它将不执行任何处理,使 DFHZNAC 设置的操作标志保持不变,并将控制权返回给 DFHZNAC。