何时针对 BTS 活动的动态路由调用分布式路由程序

对于由 RUN ASYNCHRONOUS 命令启动的 BTS 进程和活动, CICS® 在请求区域和目标区域上的各个点上调用分布式路由程序。

在路由区域上
调用分布式路由程序:
  1. 用于路由活动。 当与活动关联的事务定义为 DYNAMIC (YES) 时,会发生此情况。
  2. 用于通知静态路由的请求。 当与活动关联的事务定义为 DYNAMIC (NO) 时,会发生此情况。 路由程序无法路由活动。 但是,它可以做其他事情。
  3. 如果路由选择发生错误,例如,路由选择调用上的路由程序返回的目标区域不可用。 这使路由程序有机会指定备用目标。 此过程将进行迭代,直到路由程序选择可用的目标或设置非零返回码为止。
  4. 在 CICS 尝试 (成功或未成功) 将活动路由到目标区域之后。

    此调用指示 (除非路由区域和目标区域相同) 已解除路由区域对此事务的责任。 例如,路由程序可以使用此调用来释放它代表事务获取的任何资源。

在目标区域上
仅当路由区域上的路由程序指定应该在目标区域上重新调用时,才会发生这些调用:
  1. 在目标区域上启动激活时 (即,实现活动的事务启动时)。
  2. 如果路由的激活 (事务) 成功结束。
  3. 如果路由的激活 (事务) 异常终止。
表 1 显示了调用分布式路由程序的点以及进行每次调用的区域。 请注意,目标区域不一定是远程区域; 如果路由程序选择在本地运行活动,那么它可能是本地 (路由) 区域。
表 1. 调用分布式路由程序的时间和位置
请求/路由区域 目标区域
路由选择 事务启动
通知 事务终止
路由选择错误 事务异常终止
路由尝试完成  

当在目标区域上为事务启动,终止或异常终止调用它时,路由程序可以更新当前正在该区域上运行的 BTS 活动的计数。 当在请求区域上调用路由选择时,路由程序可以使用路由集中所有区域 (包括自身) 维护的计数作为其路由决策的输入。 此路由决策要求 BTS-set 中的所有区域都有权访问用于存储计数的公共数据存储器。