通过用户可替换程序进行定制
用户可替换程序是 CICS提供的程序,始终在 CICS® 处理中的特定点调用该程序,就像它是 CICS 代码的一部分一样。 您可以通过包含自己的逻辑来修改所提供的程序,或者将其替换为自己编写的版本。
创建您自己的用户可替换程序版本时,必须遵循以下指南:
- 您可以使用 CICS 支持的任何语言 (即汇编语言, COBOL , PL/I 或 C) 对用户可替换程序进行编码。 在 CICSTS54.CICS.SDFHSAMP 库中以源形式提供了大多数程序的汇编语言版本。 为某些程序提供了 COBOL , PL/I 或 C 版本。 每个程序的描述都列出了每种情况下提供的样本程序,副本和宏。
- 您可以通过使程序发出 EXEC CICS HANDLE ABEND 命令来捕获用户可替换程序中的异常终止。 但是,如果未发出任何 HANDLE ABEND ,那么 CICS 不会异常终止该任务,而是将控制权返回给调用该程序的 CICS 模块。 CICS 模块执行的操作取决于相关的用户可替换程序。
- 从任何用户可替换程序返回时, CICS 必须始终以主空间转换方式接收控制,恢复所有访问寄存器的原始内容,恢复所有通用寄存器 (提供返回码或链接信息的寄存器除外)。
有关转换方式的信息,请参阅 z/Architecture Principles of Operation。
- 在 z/OS®中,请勿安装以任何授权方式 (即处于管理程序状态,系统 PSW 密钥或 APF 授权) 将控制权返回给其调用者的 SVC 或 PC 例程。 这样做违反 z/OS 完整性声明。 如果从 CICS调用此类服务,那么可能会损害系统完整性,并且 IBM® 服务不会解决任何由此产生的问题。
- 用户可替换程序以及用户可替换程序调用的任何程序可以是 RMODE ANY ,但 必须 是 AMODE 31。
- 必须确保将用户可替换程序定义为本地程序。 用户可替换程序不能在远程区域中运行。 此规则适用于所有用户可替换程序,包括自动安装控制程序和动态路由程序。
- 当程序检查发生时,用户可替换程序仅生成系统转储; 它们不会生成事务转储。
- 您可以使用 CICS 执行诊断工具 (EDF) 来测试用户可替换程序。 但是,如果初始事务是 CICS提供的事务,那么 EDF 不起作用。