使用 XZIQUE 全局用户出口程序

当启用出口时,您的 XZIQUE 全局用户出口程序能够检查本地系统中特定连接的分配队列的状态。

将信息传递到参数列表中的出口程序,该参数列表构造为根据会话请求提供有关非特定分配请求或特定方式组的请求的数据。 非特定分配请求用于未指定方式组的 MRO , LU6.1和 APPC 会话。

通过使用参数列表中传递的信息,全局用户出口程序可以决定 (例如,基于队列长度) CICS® 是否对分配请求进行排队。 您的程序通过 CICS 提供的其中一个返回码将其决策传达给 CICS 。 它们是:

UERCAQUE
此返回码指示 CICS 将对分配请求进行排队。

针对连接排队的分配请求总数在系统条目统计信息 (针对所有非特定分配) 的字段 A14ESTAQ 或方式条目统计信息 (针对特定方式组分配) 的 A20ESTAQ 中提供。 请参阅 DSECT DFHA14DS 或 DFHA20DS 以获取详细信息。 CICS 传递到出口程序,在出口特定参数 UEPQUELIM 中,传递到连接定义中的 QUEUELIMIT 参数。

如果尚未达到限制,那么可以使用返回码 UERCAQUE 将控制权返回给 CICS 。

UERCAPUR
此返回码指示 CICS 将拒绝分配请求并将 SYSIDERR 返回到应用程序,但保留现有队列不变。

如果排队的分配请求数已达到在 QUEUELIMIT 参数上为连接设置的限制,那么您可以请求 CICS 拒绝该请求。 但是,您应该首先检查链接的状态是否令人满意。 这意味着检查会话的分配速率是否可接受。 使用启动队列的时间,当前时间以及自队列启动以来处理的分配总数来确定 CICS 处理请求的速率。 相关字段为 :UEPSAQTS 和 UEPSACNT (针对非特定分配请求); UEPMAQTS 和 UEPMACNT (针对特定方式组请求)。

要确定 CICS 是否以可接受的速率为此连接上的会话分配请求,您可以将计算的时间与下列其中一项进行比较:
  1. 连接定义中的参数 MAXQTIME ,在特定于出口的参数 UEPEMXQT 中传递
  2. 其他一些预设时间值。
如果使用此类公式的处理时间是可接受的,请使用返回码 UERCAPUR 向 CICS 返回控制以仅清除此请求。
UERCAKLL 或 UERCAKLM
这些返回码指示您希望 CICS 按如下所示处理请求:
  • UERCAKLL-拒绝此请求,清除此连接上所有其他排队的分配请求,并向操作员控制台发送参考消息。
  • UERCAKLM-拒绝此请求,清除此连接上所有其他排队的方式组分配请求,并向操作员控制台发送参考消息。
如果已达到队列限制,但针对队列的分配处理性能低于用户出口程序中定义的可接受限制,那么可以将控制权返回给 CICS ,如下所示:
  • 对于非特定分配请求,请使用返回码 UERCAKLL。 UERCAKLL 还向所有正在等待清除的分配请求的应用程序返回 SYSIDERR。 CICS 在后续调用 XZIQUE 出口程序时将 UEPFLAG 参数设置为 UEPRC8 ,以指示先前返回了 UERCAKLL 以清除队列。
  • 对于特定方式组分配请求,请使用返回码 UERCAKLM。 UERCAKLM 还向等待清除的分配请求的所有应用程序返回 SYSIDERR。 CICS 在后续调用 XZIQUE 出口程序时将 UEPFLAG 参数设置为 UEPRC12 ,以指示先前返回了 UERCAKLM 以清除队列。

清除导致任务流阻塞的队列将释放防止系统阻塞所需的任务槽。 允许会话队列增长越多,就越有可能达到 MAXT 参数设置的任务上限,然后导致本地区域中无法连接的入局任务队列。 请注意,某些内部 CICS 请求 (例如针对 LU 服务模型事务 CLS1, CLS2和 CLS3的请求) 不会被返回码 UERCAKLL 和 UERCAKLM 清除。

如果先前已清除队列 (使用 UERCAKLL 或 UERCAKLM) ,但当前没有排队的请求,请检查自上次清除队列以来成功分配的次数。 对于非特定分配请求,此数字位于 UEPSARC8中,对于特定方式组请求,此数字位于 UEPMAR12中。 如果自上次清除队列以来未在此连接上分配此类型的请求,那么导致先前清除的问题尚未解决,应该使用 UERCAPUR 来拒绝此请求。

如果 UEPSARC8 或 UEPMAR12 参数显示正在处理分配,那么应使用 UERCAQUE 恢复请求排队。 如果在此情况下返回 UERCAQUE ,那么 CICS 会向控制台发出一条参考消息,以指示已恢复排队。

注: 为非特定和特定方式组分配请求提供了系统条目统计信息记录 UEPCONST 的地址。

对于非特定分配请求,方式组统计信息记录 UEPMODST 的地址设置为零。 仅当请求用于特定方式组时,才会提供此地址。

如果在禁止排队后成功分配后调用出口,那么可以使用以下返回码:

UERCNORM
此返回码指示 CICS 将恢复链路上的正常处理,包括请求排队。