将 RRMS 与外部 CICS 接口配合使用
您可以使用 z/OS® 可恢复资源管理服务 (RRMS) 来协调分布式程序链接 (DPL) 请求。
要使用 RRMS 来协调 DPL 请求,请确保满足以下条件:
- EXCI 客户机及其向其发送 DPL 请求的 CICS® 区域在同一 z/OS 映像中运行。 这是 RRMS 限制,不适用于指定 SYNCONRETURN 的 DPL 请求。
- 接收 DPL 请求的 CICS 区域是在 RRMS=YES 指定为系统初始化参数 (缺省值为 RRMS=NO) 的情况下启动的。
- 资源回收服务(RRS)在 z/OS 映像中运行,该映像中同时运行着 CICS 和客户端程序。 参见 z/OS MVS 编程:资源回收。
下图显示外部 CICS 接口和 CICS 如何使用 RRMS。 它显示包含外部 CICS 接口和 EXCI 客户机程序的 z/OS 批处理区域与包含 CICS 镜像和 CICS 应用程序的 CICS 服务器区域之间的流。 图中的数字是指在图后列出的恢复单元 (UR) 中的主要步骤。

- 如果指定了 CICS 系统初始化参数 RRMS=YES ,那么 CICS 将向 RRMS 注册为资源管理器。 此注册在 CICS 初始化期间进行。
- 当 EXCI 客户机程序以 2 阶段落实方式 (省略 SYNCONRETURN 选项的调用) 发出 DPL_Request 调用时,它将从 RRMS 接收以下内容:
- 恢复单元标识 (URID)
- 上下文令牌
- 传递令牌
- 由 EXCI 代表客户机程序获取的 URID 和令牌包含在传递到 CICS 服务器区域的 DPL 请求中。 如果 DPL 请求是 UR 中的第一个请求,那么 CICS 会调用 RRS 以表示对 UR 的兴趣,连接新的镜像事务并验证令牌。 如果请求有效,那么镜像程序将链接到指定的服务器应用程序。 服务器程序完成其工作,这全部在 UR 中执行。 此工作可以包括更新本地服务器区域中的可恢复资源,或者通过菊花链连接到其他 CICS 区域。
- 当服务器程序完成时,它会将通信区 (COMMAREA) 或通道和容器 (带有返回码) 返回到客户机程序。注: 步骤 3 和 4 可以针对同一 UR 重复多次。
- 当 EXCI 客户机程序准备好落实或回退其更改时,该程序将调用 RRS 以开始 2 阶段落实协议。
- RRS 充当协调程序并完成下列其中一项操作:
- RRS 要求资源管理器准备落实 UR 中的所有更新。 CICS 服务器区域以外的资源管理器也可能表示对 UR 感兴趣。 如果全部投赞成票, RRS 会告诉他们继续进行并落实更改。 如果有任何投票反对, RRS 会告知所有资源管理器回退 UR 中所做的所有更改。
- RRS 告知所有表示对 UR 感兴趣的资源管理器回退 UR 中所做的所有更改。
指定 SYNCONRETURN 选项的每个 DPL 请求都会在目标 CICS 区域中附加新的镜像任务。 未指定 SYNCONRETURN 的第一个 DPL 请求也会附加新的镜像任务,但后续请求将定向到同一镜像任务。 发生同步点时,镜像任务结束,下一个非 SYNCONRETURN 请求将连接新的镜像。 请参阅 图 2。 在此图中, z/OS 客户机应用程序使用和不使用 SYNCONRETURN 发出 DPL 请求。 图上的数字指的是主体流,如图后所列。

- 客户机发出不带 SYNCONRETURN 选项的 DPL 请求。
由于没有镜像事务正在运行,因此将连接新的镜像 (镜像 1)。
- DPL 请求完成,并且由于发出该请求时未指定 SYNCONRETURN 选项,因此镜像事务将等待另一个请求。
- 客户机使用 SYNCONRETURN 选项发出 DPL 请求。
已连接新的镜像事务 (镜像 2)。
- 完成 DPL 请求后,将落实由镜像事务更新的资源,并且镜像事务将结束。
- 客户机在不使用 SYNCONRETURN 选项的情况下发出另一个 DPL 请求。 镜像 1 接收并执行 DPL 请求。
- DPL 请求完成,并且镜像事务再次等待另一个请求。
- 客户机使用 SYNCONRETURN 选项发出 DPL 请求。
已连接新的镜像事务 (镜像 3)。
- 完成 DPL 请求后,将落实由镜像事务更新的资源,并且镜像事务将结束。
- 客户机程序请求同步点。 已落实由镜像 1 更新的资源,并且事务已结束。