编写节点错误程序
您可以针对使用 ACF/SNA 接口支持的终端和逻辑单元编写节点错误程序 (NEP)。 CICS® 提供样本节点错误程序,您可以将其用作自己程序的基础。
与非z/OS® Communications Server 设备的终端错误程序一样, SNA 连接的终端的节点错误程序有三种形式可用:
- 缺省节点错误程序
- CICS提供的样本节点错误程序
- 用户编写的版本
如果在应用程序中对 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。