分布式路由程序可以对 BTS 活动的路由执行哪些操作

调用路由程序对基站活动进行路由时,路由程序可以更改目标区域而不是默认目标区域,也可以告诉 CICS® 是否对基站活动进行路由。 如果在路由选择中发生错误,那么路由程序可以确定要执行哪些操作作为响应。

更改目标 CICS 区域

传递到分布式路由程序的通信区域的 DYRSYSID 字段最初包含进程或活动要路由到的缺省目标区域的系统标识 (sysid)。 这派生自路由区域上已安装的事务定义的 REMOTESYSTEM 选项的值。 如果未指定 REMOTESYSTEM,传递的 sysid 将是本地 CICS 区域的 sysid。

当调用它进行路由选择时,分布式路由程序可以通过更改 DYRSYSID 中的值来更改目标区域。

如果指定的 sysid 无效或找不到,那么 SYSIDERR 将返回到分布式路由程序-这可能会通过返回另一个 sysid 来处理错误。 有关详细信息,请参阅 错误处理: 如果路由选择中发生错误

如果路由程序在为通知,路由完成,事务启动,事务终止或异常终止调用 sysid 时更改了 sysid ,那么更改没有任何作用。

告知 CICS 是否路由活动

当调用路由程序进行路由时,如果要路由进程或活动 (无论是否更改了任何值) ,请在通信区域的 DYRRETC 字段中向 CICS 返回零值。

将控件返回到返回码为零的 CICS 时, CICS 首先会将返回的 sysid 与其自己的本地 sysid 进行比较:
  • 如果 sysids 相同 (或者返回的 sysid 为空白) ,那么 CICS 将在本地执行 RUN 请求。 在本地执行请求时, CICS 会将消息 DFHSH0102 写入 CSSH 瞬时数据队列。
  • 如果两个 sysids 不相同,那么 CICS 会将请求路由到远程 CICS 区域。

如果希望 CICS 将请求视为 不可用,请返回非零值。 有关不可用请求的信息,请参阅 处理不可用请求

当针对通知,路由完成,事务启动,事务终止或异常终止调用路由程序时,返回 DYRRETC 中的值将无效。

错误处理: 如果在路由选择中发生错误

如果在路由选择中发生错误,例如,如果分布式路由程序返回的 sysid 不可用或未知,那么将再次调用分布式路由程序。

重新调用程序时,您可以选择操作:
  1. 您可以尝试通过更改 sysid 并在 DYRRETC 中发出返回码 "0" 来将请求路由到其他目标区域。

    如果此区域也不可用,那么将针对路由选择错误再次调用路由程序。 在字段 DYRCOUNT 中传递为此请求的路由目的调用路由程序的次数的计数。 使用此计数可帮助您决定何时停止尝试路由请求。

  2. 通过在 DYRRETC 中发出非零返回码,可以告知 CICS 将请求视为 "不可用"。
    有时,可能由于事务亲缘关系,必须在特定目标区域上执行活动,而不能在其他目标区域上执行活动。 如果是这种情况,并且目标区域不可用,请将请求分类为不可用。 CICS不针对路由选择错误重新调用路由程序:
    1. 以 1 分钟的时间间隔反复尝试将请求路由到指定的目标区域。

      如果其中一个尝试成功,那么 CICS 会发出消息 DFHSH0108。 将在路由区域上为 "路由尝试完成" 调用路由程序,并在目标区域上为 "事务启动" 调用路由程序 (如果指定)。

    2. 每小时,如果目标区域仍然不可用,那么会发出消息 DFHSH0106。
    3. 如果发出请求后 24 小时内目标区域仍不可用,那么发出消息 DFHSH0107,并停止尝试路由已废弃的请求。 在路由区域上为 "路由尝试完成" 调用路由程序。