EXEC 接口程序出口 XEIIN、XEIOUT、XEISPIN 和 XEISPOUT
EXEC 接口程序中有四个全局用户出口点可以在 API 或 SPI 调用之前或之后使用。
- 退出 XEIIN
- 在执行任何 EXEC CICS 应用程序编程接口 (API) 或系统编程接口 (SPI) 命令之前调用。
- 退出 XEISPIN
- 在执行任何 EXEC CICS SPI 命令之前调用,但以下命令除外:
- EXEC CICS ENABLE
- EXEC CICS DISABLE
- EXEC CICS EXTRACT EXIT
- EXEC CICS PERFORM DUMP
- EXEC CICS RESYNC ENTRYNAME
顺序为:TRACE – XEIIN – XEISPIN – EDF – command - 退出 XEIOUT
- 在执行任何 EXEC CICS API 或 SPI 命令之后调用。
- 退出 XEISPOUT
- 在执行任何 EXEC CICS SPI 命令之后调用,但针对 XEISPIN 列出的那些 SPI 命令除外。顺序为:
command – EDF – XEISPOUT – XEIOUT – TRACE
例如,如果XEIIN和XEIOUT出口共享同一个GWA,则必须允许异步处理的可能性,以确保数据的完整性,并防止出现不可预测的结果。
在进入出口时,特定于出口的参数 UEPARG 包含命令参数列表的地址。
命令参数列表
列表中的第一个参数指向称为 自变量 0的数据字符串。 其他参数指向为命令上传递的参数指定的值。
存在位的 2 字节字段,这些位指示是否在命令上传递自变量。 例如,考虑以下命令:
EXEC CICS LINK PROGRAM(‘MYPROG')此处,参数0以函数代码 X'0E02' (LINK)开头。 设置了存在位 1 ,指示存在自变量 1 (即, "MYPROG")。可以从特定命令的转换代码中推断命令参数 (例如 PROGRAM) 与其在参数列表中的位置和值 (在本例中,参数为 1 , 'MYPROG') 之间的对应关系。
不支持通过更改自变量 0 来修改 CICS® 命令,这将导致意外错误或结果。
例如,如果应用程序是用汇编程序或 PL/I 编写的,而你修改了参数 0,那么你将写入程序存储空间(即程序本身占用的存储空间),这可能会导致 0C4 中止。 此外,修改参数 0 不仅会改变 CICS 命令在应用程序中的执行,还会改变应用程序虚拟存储副本中的 CICS 命令。 这意味着调用同一程序副本的下一个任务也将执行修改后的命令。
修改参数 0 的危险不适用于 COBOL 或 C® 应用程序,但对于用任何支持语言编写的应用程序,都不应修改 CICS 命令。
绕过命令
XEIIN 或 XEISPIN 出口程序可以通过设置 UERCBYP 返回码来绕过命令的执行。 如果执行此操作,那么不会调用 EDF ,但会调用 XEISPOUT , XEIOUT 和出口跟踪 (如果它们处于活动状态)。
例如,绕过 EXEC CICS 命令允许出口程序将 CICS 函数替换为其自己的处理。
在设置 UERCBYP 之前,程序应检查 UEPPGM 指向的值,以确保它不会绕过 CICS发出的 EXEC CICS 命令。