编写 NEP 的概述
DFHZNEP 模块必须符合定义的接口: 即,它必须是一个链接到程序,该程序使用定义的通信区域字段来分析错误,然后返回到 DFHZNAC。 CICS® 提供的缺省 NEP 的源代码可用作构建单个 NEP 的框架。
CICS 还提供宏以帮助您生成更复杂的样本 NEP。 这些是 辅助 ,可帮助您开发自己的 NEP; 您不必使用任何 NEP。
错误处理逻辑可以编写为多个模块,但从 DFHZNAC 接收控制的模块必须称为 DFHZNEP。
DFHZNEP 代码可以使用标准 CICS 函数 (LINK , XCTL) 来调用其他用户模块。 因此请求的每个模块都必须具有已安装的 CSD 程序定义或自动安装的程序定义。 IBM®提供的 CSD 组 DFHVTAM 中提供了 DFHZNAC 和 DFHZNEP 本身的程序资源定义。
DFHZNAC-DFHZNEP 接口的主要功能如下所示:
- DFHZNEP 可以使用任何 CICS支持的语言编写。注: CICS提供的 NEP 代码仅以汇编语言提供。 通信区域参数列表有汇编语言和 C® 版本。
- 对于队列中的每个与节点相关的错误, DFHZNEP 将单独链接到。 (请注意,由于检测代码始终与错误相关联,因此对于这些错误, DFHZNEP 未单独链接到。)
- 两个模块之间的通信是通过通信区域 (DFHNEPCA) 进行的。
通信区域中描述了通信区域的结构。
在每个 DFHZNEP 调用上,通信区域中的一个字段包含由 DFHZNAC 指定的 1 字节内部错误代码,用于标识错误类型。 其他字段标识与错误关联的 CICS TCTTE (LU) 以及任何 SNA 检测代码。 还有一些字段供 DFHZNEP 传回用户消息,以供 DFHZNAC 进行后续日志记录。
其他字段包含 "操作标志"。 每个标志表示 DFHZNAC 在 DFHZNEP 向其返回控制权时可能执行的操作。 这些操作的类型不同:
- 报告 (控制块的转储,执行的操作)
- 状态更改 (例如, TCTTE)
- 清除工作 (取消任何关联事务,结束 z/OS® Communications Server 会话)。
可以在 DFHZNEP 中设置或重置操作标志。
DFHZNAC 针对特定错误代码和检测代码设置的操作标志在 节点异常条件程序的缺省操作中列出。