时间间隔控制 EXEC 接口程序出口(XICEREQ、XICERES 和 XICEREQC)

当与时间间隔控制程序进行交互时,将调用这些出口。

XICEREQ
在 CICS® 处理时间间隔控制请求之前,将在进入时间间隔控制程序时调用 XICEREQ。 通过使用 XICEREQ ,您可以:
  • 分析请求以确定其类型,指定的关键字及其值。
  • 在执行命令之前修改请求指定的任何值。
  • 设置返回码以指定:
    • CICS 应继续处理已修改或未修改的请求。
    • CICS 应绕过请求。 (请注意,如果设置此返回码,那么还必须设置 EXEC 接口块 (EIB) 的返回码,就像您自己处理了请求一样。)
注: XICEREQ 出口由 CICS 代码发出的内部请求以及应用程序发出的请求调用。
第 XICERES 条
在 CICS 处理已动态路由到此区域的非终端相关 EXEC CICS START 请求之前,时间间隔控制程序将调用 XICERES。
请注意,将调用 XICERES:
  • 在出口 XICEREQ 之后和 XICEREQC 之前 (如果启用了这些出口)。 这意味着:
    • 如果 XICEREQ 出口程序选择绕过请求,那么不会调用 XICERES ,即使它已启用也是如此。
    • 如果 XICEREQ 出口程序修改请求,那么 XICERES 必须处理修改后的请求。
  • 目标 区域上-即, START 请求已路由到的区域。
  • 仅当路由区域 (运行路由程序的区域) 支持 "资源不可用" 条件 (RESUNAVAIL) 时。 要支持 "资源不可用" 条件,路由区域必须是受支持的 CICS TS 发行版。
  • 仅当已启用时。 强烈建议您仅在非终端相关 EXEC CICS START 请求可动态路由到的应用程序拥有区域中启用此出口。
  • 通过 CICS 代码发出的内部请求以及应用程序发出的请求。
调用 XICERES 出口:
  • 对于静态路由的请求。
  • 对于与终端相关的 EXEC CICS START 请求。 (这些始终在终端拥有区域中执行,并且无法路由。)
  • 对于动态路由的 事务 -仅动态路由 (非终端相关) START 请求会导致调用出口。 因此,由与终端相关的 EXEC CICS START 命令启动的动态路由事务不会导致调用出口。
  • 如果已禁用。
  • 如果 XICEREQ 出口程序选择绕过请求。
您可以使用 XICERES 来检查要启动的事务所需的所有资源在目标区域上都可用。 例如,如果事务已禁用,或者缺少必需的文件,那么出口程序可以使分布式路由程序有机会将请求路由到其他区域。 为此,请设置返回码 UERCRESU。 这将导致 CICS :
  1. 将分布式路由程序的通信区域的 DYRERROR 字段设置为 "F"-资源不可用。
  2. 在路由区域上因路由选择失败而重新调用路由程序。
  3. 在目标区域上的镜像执行的 EXEC CICS START 命令上返回 RESUNAVAIL 条件。 (此条件不会返回到应用程序。)

CICS 将忽略出口程序对任何出口参数的值所作的任何更改。 出口程序可以设置返回码,但不能更改任何参数。

有关动态路由与非终端相关的 EXEC CICS START 请求的指导信息,请参阅 与非终端相关的 START 命令。 有关编写分布式路由程序以路由非终端相关的 EXEC CICS START 请求的信息,请参阅 路由非终端相关的 START 请求

XICEREQC
在时间间隔控制程序请求完成后调用 XICEREQC。 通过使用 XICEREQC ,您可以:
  • 分析请求以确定其类型,指定的关键字及其值。
  • 设置 EIB 的返回码。 检查返回码时,请参阅 EIBRCODE 值。
注: XICEREQC 出口由 CICS 代码发出的内部请求以及应用程序发出的请求调用。

传递到每个出口的参数

CICS 将十种类型的地址参数传递到出口。

  • 命令级参数结构 (UEPCLPS) 的地址
  • 用于将 4 字节的数据从 XICEREQ 传递到 XICEREQC 的令牌 (UEPICTOK) 的地址
  • 来自 EIB 的六个返回码段,资源,日期和时间信息的副本地址
  • 在任务的整个生命周期内有效的令牌 (UEPTSTOK) 的地址
  • 出口递归计数 (UEPRECUR) 的地址