使用 CICS 服务

控制在出口程序中使用 CICS® 服务的规则有所不同,具体取决于要启动出口程序的出口点。

以下一般规则适用:
  • 无法从分派器域中的任何出口点启动 CICS 服务。
  • 可以使用大多数出口中的出口编程接口 (XPI) 来启动 CICS 服务。 如果使用 XPI ,请注意针对每个出口和每个 XPI 宏列出的规则和限制。
  • 可以使用某些出口中的 EXEC CICS 命令来请求某些 CICS 服务。 出口的详细描述中列出了有效的命令。 如果未列出任何命令,那么意味着不支持 EXEC CICS API 或 SPI 命令。 导致 XCTL (直接或隐式) 的 EXEC CICS 命令; 例如,绝不能使用 EXEC CICS XCTLEXEC CICS SHUTDOWN

    在不支持使用 EXEC CICS 命令的出口启动的出口程序不得调用与任务相关的用户出口程序 (TRUE)。 调用 TRUE 等同于发出 EXEC CICS 命令。 此规则的例外是从 XFCFRIN 和 XFCFROUT 出口启动的程序,它们可以调用 TRUE。

    注: 在支持使用 EXEC CICS 文件控制命令的出口中,必须在出口程序的同一调用中发出构成相关序列 (例如 EXEC CICS STARTBREXEC CICS READNEXTEXEC CICS ENDBR) 的文件命令。

    例如,如果出口程序的一次调用发出 EXEC CICS STARTBR 命令,而该相同任务的出口程序的下一次调用发出 EXEC CICS READNEXT 命令,那么 READNEXT 将失败并返回 INVREQ 条件。

  • 所有发出 EXEC CICS 命令的出口程序都必须首先对 EIB 进行寻址。 这不是通过使用 DFHEIENT 宏自动完成的,普通 EXEC 汇编语言程序也是如此。 因此,要从出口程序发出的第一个 EXEC 命令必须是 EXEC CICS ADDRESS EIB (eib-register),其中 eib-register 是缺省寄存器 (R11) 或作为 DFHEIENT 宏的参数提供的寄存器。

    发出 EXEC CICS 命令且使用 DFHEIENT 宏的所有出口程序都应该使用 DFHEIRET 宏来设置返回码并返回到 CICS。 请参阅 将值返回到 CICS

  • 有许多出口可用于同时使用 EXEC CICS 命令和 XPI 调用,但应确保在使用寄存器 13 时不存在冲突。 要避免此类冲突,请在 DFHEIENT 宏上使用 DATAREG 选项 (请参阅 XPI 寄存器用法 以获取信息)。

    有关如何在同一全局用户出口程序中使用 EXEC CICS 命令和 XPI 调用的示例,请参阅 全局用户出口样本程序 DFH$XTSE

重要说明:
  • 如果全局用户出口程序不包含 EXEC CICS 命令,请不要在组装程序时使用 CICS 命令级别转换程序。
  • 不要从全局用户退出程序中调用CICSCICS(例如RACF®或 MVS)系统服务。
  • 如果操作系统请求导致等待,那么整个 CICS 系统将停止,直到操作系统请求得到服务为止。