传递到分布式路由程序的参数

将多个参数传递到分布式路由程序。 通信区域由副本 DFHDYPDS 映射,该副本位于所有受支持编程语言的相应 CICS® 库中。

将同一通信区域同时传递到分布式路由程序和动态路由程序。 某些参数对一个路由程序有意义,但对另一个路由程序有意义。 某些参数值传递到一个路由程序,但从不传递到另一个路由程序。 以下列表详细描述了对分布式路由程序很重要的参数; 不会列出从未传递到分布式路由程序的参数值。 例如,在 DYRTYPE 参数下,未列出值 X' 4 ' ,因为它从未传递到分布式路由程序; 它仅发生在与程序链接相关的对动态路由程序的调用上。

如果使用与分布式路由程序和动态路由程序相同的程序,那么有关动态路由调用的重要参数和值的描述请参阅 传递到动态路由程序的参数

DYRABCDE
与目标区域中的路由请求关联的事务异常终止时返回的异常终止代码。

当调用分布式路由程序以停止路由请求时,此字段很重要。 除空白以外的任何值都指示事务已在目标区域中异常结束 (对于分布式路由程序,该目标区域也是调用路由程序的区域)。

有关如何处理其他类型的异常终止的常规信息,请参阅 处理目标区域上的异常终止

DYRABNLC
是异常事件代码,或为空。

当调用分布式路由程序以停止路由请求时,此字段很重要。 除空值以外的任何值都指示在请求所路由到的区域 (对于分布式路由程序,该区域也是调用路由程序的区域) 中发生了异常事件 而不是事务异常结束。 在调查并修正错误原因之前,您的路由程序不得将进一步的请求路由到同一区域。

此字段供 CICSPlex® System Manager使用。 目前,它是由于与资源管理器 Db2®, IMS, IBM® MQ或 VSAM RLS 的连接不可用而设置的。 有关更多信息,请参阅 避免漏风效应

戴 RARACMAA
未由分布式路由程序使用。 在调用时,它设置为零。
戴 RARACMAL
未由分布式路由程序使用。 在调用时,它设置为零。
DYRACTCMP
指示 BTS 活动是否正在完成。 在路由进程时, DYRACTCMP 指示根活动是否正在完成。

此字段仅适用于 BTS 流程和活动的路由。 其内容对于停止事务的调用很重要。

可以使用以下值:
Y
根活动是 BTS 活动的最终激活。
N
根活动不是 BTS 活动的最终激活。
DYRACTID
要路由的 BTS 活动的 CICS分配的 52 个字符的活动标识。 路由进程时, DYRACTID 会返回根活动的标识。

此字段仅适用于 BTS 流程和活动的路由。

戴拉货站
要路由的 BTS 活动的名称。 在路由进程时, DYRACTN 将返回根活动的名称; 即 DFHROOT。

此字段仅适用于 BTS 流程和活动的路由。

戴拉 BLGTH
未由分布式路由程序使用。 在调用时,它设置为零。
戴 RBPNTR
未由分布式路由程序使用。 在调用时,它设置为零。
戴 RCABP
指示是否希望 CICS 继续标准异常终止处理。

分布式路由程序不使用此字段。 调用时,将其设置为 Y。

戴里沙
与程序链接或 START 命令关联的通道的名称 (如果有)。 此字段仅适用于 DPL 请求,非终端相关 START 请求以及终端相关 START 请求启动的事务的路由。 对于其他类型的请求,或者如果没有通道与命令相关联,那么此字段包含空白。

请注意,为路由程序提供的是通道的 名称 ,而不是其地址,因此无法检查或更改容器的内容。

戴拉 COMP
是 CICS 组件代码。 对于对分布式路由程序的调用,将其设置为下列其中一项:
SH
调度程序服务域。 用于 BTS 进程和活动的路由以及与非终端相关的 START 请求。
RZ
请求流域。 用于路由入站 Web Service 请求的方法请求。
DYRCOUNT
在 DYRFUNC 设置为 0 , 1 或 3 的情况下,对此请求调用分布式路由程序的次数的计数。 使用此字段来限制程序尝试路由请求的次数。
DYRDCYN
指示是否支持动态路由的非终端 START 请求的菊花链。 有关详细信息,请参阅 告知 CICS 是否支持非终端相关 START 请求的菊花链
可以使用以下值:
Y
支持动态路由的非终端 START 请求的菊花链。
N
不支持动态路由的非终端 START 请求的菊花链。
DYRDTRRJ
指示是否拒绝或接受由 DTRTRAN 系统初始化参数上指定的公共事务定义所定义的事务进行处理。

分布式路由程序不使用此字段。 调用时,它设置为 N。

DYRDTRXN
指示要路由的事务是由 DTRTRAN 系统初始化参数上指定的公共事务定义定义还是由特定事务定义定义。

分布式路由程序不使用此字段。 调用时,它设置为 N。

DYRERROR
仅当 DYRFUNC 设置为 1 时才具有值。 它指示上次尝试路由选择期间发生的错误类型。 可能的值包括:
0
所选 SYSID 未知。
1
所选系统未在服务中。
2
所选系统正在使用中,但没有可用的会话。
3
分配请求已被拒绝, SYSIDERR 将返回到应用程序。 发生此错误的原因如下之一:
  • XZIQUE 全局用户出口程序请求拒绝分配
  • CICS 自动拒绝了分配请求,因为已达到 CONNECTION 资源定义上指定的 QUEUELIMIT 值。
4
已清除分配请求的队列,并将 SYSIDERR 返回到所有正在等待的应用程序。 发生此错误的原因如下之一:
  • XZIQUE 全局用户出口程序请求清除队列
  • CICS 自动清除队列,因为已达到 CONNECTION 资源定义上指定的 MAXQTIME 限制。
5
所选系统不支持此功能。

对于 BTS 进程和活动以及与非终端相关的 START 请求,如果分布式路由程序尝试将请求路由到未通过 MRO 或 APPC 并行会话链路连接的 CICS 区域,那么会发生此错误。

对于入站 Web 服务请求,如果分布式路由程序尝试将请求路由到预先CICS TS for z/OS®, 3.1 区域,则会出现此错误。

接下来的六个值都适用于路由 START 请求的尝试。 有关这些错误条件的含义,请参阅 START

6
EXEC CICS START 命令返回了 LENGERR。
8
EXEC CICS START 命令返回 INVREQ。
9
EXEC CICS START 命令返回了 NOTAUTH。
C
EXEC CICS START 命令返回了 TRANSIDERR。
D
EXEC CICS START 命令返回了 IOERR。
E
EXEC CICS START 命令返回了 USERIDERR。
F
目标区域上的 XPCERES 或 XICERES 全局用户出口程序设置了返回码 UERCRESU ,这意味着必需资源在目标区域上不可用。 可以为程序链接, Link3270 网桥和非终端相关的 START 请求设置此错误代码。
戴 RFUNC
告诉您调用分布式路由程序的原因。 可以使用以下值:
0
针对路由选择调用。

此调用发生在路由区域上。

1
由于在路由选择中发生错误而调用。

此调用发生在路由区域上。

2
已调用,因为与先前路由的请求关联的事务已成功结束。

此调用发生在目标区域上。

3
用于通知静态路由的请求的目标。

此调用发生在路由区域上。 它适用于以下情况:

BTS 流程和活动
已发出 RUN ASYNCHRONOUS 命令,但与 BTS 进程或活动关联的事务定义为 DYNAMIC (NO)。
入站 Web Service 请求
与请求关联的事务定义为 DYNAMIC (NO)。
与非终端相关的 START 请求
定义为 ROUTABLE (YES) 的事务适用于 增强型 路由,但不适用于 动态 路由,因为以下一项或两项均适用:
  • 事务定义指定 DYNAMIC (NO)。
  • START 命令的 SYSID 选项显式地指定远程区域。

有关哪些与非终端相关的 START 请求适合动态路由的详细信息,请参阅 START 命令调用的路由事务

4
由于与路由请求关联的事务异常终止而调用。

此调用发生在目标区域上。

5
针对事务启动调用。 将在目标区域上启动与路由请求关联的事务。

此调用发生在目标区域上。

6
已调用,因为 CICS 已成功或未成功完成将请求路由到目标区域的尝试。

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

DYRTYPE 字段告诉您路由或通知请求的类型。

Dyrlevel
目标 AOR 中成功处理路由请求所需的 CICS 级别。 可以使用以下值:
X'00 '
任何当前受支持的 CICS 版本都能够处理请求。
X'03'
为这些请求设置了此值:
  • 具有关联通道的 DPL 请求。
    注: DPL 请求的路由由 动态 路由程序处理。
  • 具有关联通道的 START 请求。
  • 入站 Web Service 请求。
(DYRLPROG)
未由分布式路由程序使用。 在调用时,将其设置为空字符。
DYRNETNM
未由分布式路由程序使用。 在调用时,将其设置为空字符。 要设置目标区域,分布式路由程序必须使用 DYRSYSID 字段。
戴罗德
指定当与路由请求相关联的事务将在目标区域上启动或结束 (成功或失败) 时,是否 在目标区域 上重新调用分布式路由程序。
此字段用于路由选择,通知和路由选择错误调用。 可以使用以下值:
N
不会调用分布式路由程序来启动,停止或异常终止事务; 即, 不会在目标区域上调用。 N 是缺省值。
Y
将在目标区域上重新调用分布式路由程序。

可以对路由到远程 CICS 区域的请求以及本地执行的请求指定此选项。

DYRPROCCMP
指示 BTS 进程是否正在完成。

此字段仅适用于 BTS 流程和活动的路由。 其内容对于停止事务的调用很重要。

可以使用以下值:
Y
此调用是 BTS 进程的最终激活。
N
此调用不是 BTS 进程的最终激活。

当事务结束时调用路由程序时,路由程序可以使用此字段的值来决定是否结束任何事务亲缘关系。

DYRPROCID
要路由的活动所属的 BTS 进程的 CICS分配的 52 个字符的标识。

此字段仅适用于 BTS 流程和活动的路由。

DYRPROCN
要路由的活动所属的 BTS 流程的名称。

此字段仅适用于 BTS 流程和活动的路由。

戴拉 PROCT
要路由的流程或活动所属的 BTS 流程的流程类型。

此字段仅适用于 BTS 流程和活动的路由。

戴拉 PRTY
未由分布式路由程序使用。 在调用时,它设置为零。
DYRQUEUE
标识如果没有会话立即可用于 DYRSYSID 所标识的远程系统,那么是否将请求排队。

分布式路由程序不使用此字段。 调用时,将其设置为 Y。

戴雷特
包含用于告知 CICS 如何继续的返回码。 可以使用以下值:
0
路由请求。
非零
请勿路由请求。 CICS 将针对 BTS 进程和活动的请求视为不可用。 请参阅 错误处理: 如果路由选择中发生错误中不可用请求的描述。 START 请求接收 SYSIDERR 条件。
每当调用路由程序时, DYRRETC 都会设置为 0。 当为路由选择调用该请求时,或者由于路由选择发生错误,如果您希望 CICS 将请求路由到 DYRSYSID 字段中指定的区域,那么必须将其设置为 0。

当为通知,路由完成,启动或停止事务或异常终止而调用路由程序时,您不必设置返回码。 CICS将忽略您设置的任何代码。

DYRRTPRI
指示如果终端拥有区域与应用程序拥有区域之间的连接是 MRO 或 IPIC,那么是否将事务的分派优先级传递到应用程序拥有区域。

分布式路由程序不使用此字段。 调用时,它设置为 N。

戴拉 SRCTK
是路由事务的 MVS 工作负载管理服务和报告类标记。 路由程序不得更改此值,此值由 CICS 设置并由 CICSPlex SM 使用。 对于与非终端相关的 START 请求,此字段设置为零。 请勿更改。
DYRSYSID
是 CICS 区域的系统标识 (SYSID)。 此参数的确切含义取决于 DYRFUNC 的值:
  • 当 DYRFUNC 设置为 0 (路由选择) 时, DYRSYSID 包含下列其中一个名称:
    • 在已安装事务定义的 REMOTESYSTEM 选项上指定的 CICS 区域名称
    • 如果未指定 REMOTESYSTEM ,那么为本地 CICS 区域的系统名称。

    分布式路由程序可以接受 DYRSYSID 的值,或者在返回到 CICS之前对其进行更改。

    如果返回到 CICS 的 SYSID 与本地 SYSID 相同,那么 CICS 将在本地区域上运行请求。

  • 当 DYRFUNC 设置为 1 (路由选择错误) 时, DYRSYSID 包含分布式路由程序在其先前调用时返回到 CICS 的 CICS 区域名称。 如果希望 CICS 重试路由,那么必须在返回到 CICS之前更改 DYRSYSID。
  • 当 DYRFUNC 设置为 2 (路由请求结束) 时, DYRSYSID 包含执行已完成事务的目标区域的名称。 此区域也是调用分布式路由程序的区域。
  • 当 DYRFUNC 设置为 3 (通知) 时:
    • 对于 BTS 流程和活动, DYRSYSID 包含下列其中一个名称:
      • 在已安装事务定义的 REMOTESYSTEM 选项上指定的 CICS 区域名称。
      • 如果未指定 REMOTESYSTEM ,那么为本地 CICS 区域的系统名称。
    • 对于入站 Web Service 请求, DYRSYSID 包含下列其中一个名称:
      • 在已安装事务定义的 REMOTESYSTEM 选项上指定的 CICS 区域名称 (针对 DFHWS-TRANID 容器中指定的事务)。
      • 如果未指定 REMOTESYSTEM ,那么为本地 CICS 区域的系统名称。
    • 对于与非终端相关的 START 请求, DYRSYSID 包含下列其中一个名称:
      • EXEC CICS START 命令的 SYSID 选项上指定的远程 CICS 区域名称。
      • 如果未指定 SYSID ,那么将在已安装事务定义的 REMOTESYSTEM 选项上指定远程 CICS 区域名称。
      • 如果未指定 REMOTESYSTEM ,那么为本地 CICS 区域的系统名称。

    将忽略对 DYRSYSID 值的任何更改。

  • 当 DYRFUNC 设置为 4 (事务异常终止) 时, DYRSYSID 包含事务异常终止所在的目标区域的名称。 此区域是调用分布式路由程序的区域。
  • 当 DYRFUNC 设置为 5 (事务启动) 时, DYRSYSID 包含要对其执行路由请求的目标区域的名称。 此区域是调用分布式路由程序的区域。
  • 当 DYRFUNC 设置为 6 (路由已完成) 时, DYRSYSID 包含 CICS 尝试 (成功或未成功) 将请求路由到的目标区域的名称。
DYRTRAN
包含事务名称。

请注意,这是 在路由区域中用于识别事务的名称。 与动态路由程序不同,分布式路由程序传递的是本地而不是远程事务名称,不能指定备用远程事务名称以转发到目标区域。

DYRTYPE
要为其调用程序的路由请求的类型。 可以传递到 分布式 路由程序的值如下所示:
5
BTS 流程或活动。
6
与非终端相关的 START 请求,包含或不包含数据 但没有通道
7
入站 Web Service 请求的方法请求。
B
与非终端相关的 START 请求,具有通道。
DYRUAPTR
如果 DYRVER 为 7 或更大值,那么此字段包含新用户区域 DYRUSERN 的地址。 新的用户区域机制使路由程序的源独立于创建通信区域的 CICS 发行版。 仅出于兼容性目的保留旧用户区域字段 DYRUSER。

可以使用 DYRUAREA DSECT 映射用户区域。

在 DYRUAPTR 小于 7 的系统中, DYRUAPTR 的内容不可预测。

戴拉用户
是 1024 字节的用户区域。

仅出于兼容性目的保留此字段; 请参阅 DYRUAPTR 和 DYRUSERN 字段的描述。

DYRUSERID
是与请求关联的 CICS 用户标识。
  • 对于 BTS 流程和活动, DYRUSERID 包含下列其中一个用户标识:
    • 如果 BTS 进程或活动由 LINK ACQPROCESS 或 LINK ACTIVITY 命令激活,那么这是发出 LINK 的事务的用户标识。
    • 在 DEFINE PROCESS 或 DEFINE ACTIVITY 命令的 USERID 选项上指定的用户标识。
    • 如果未在 DEFINE 命令中指定 USERID ,那么这是用于运行发出 DEFINE 命令的事务的用户标识。
    有关与 BTS 流程和活动关联的用户标识的更多详细信息,请参阅 流程和活动用户标识
  • 对于入站 Web Service 请求, DYRUSERID 包含与请求流关联的用户标识。
  • 对于与非终端相关的 START 请求, DYRUSERID 包含:
    • EXEC CICS START 命令的 USERID 选项上指定的用户标识。
    • 如果未指定 USERID ,那么这是用于运行发出 START 命令的事务的用户标识。

通过在调用此字段以进行路由时或由于路由选择错误 (分别为DYRFUNC=0 或 1) 检查此字段,您的路由程序可以根据与请求关联的用户标识来路由请求。

DYRUSERN
是 1024 字节的用户区域。

在针对给定任务调用分布式路由程序之前, CICS 将此用户区域初始化为零。 此用户区域可由路由程序修改; 修改后的区域将传递给同一请求的路由程序的后续调用。

  1. 在目标区域上第一次调用 (事务启动) 时传递到路由程序的用户区域是路由区域上用户区域的 副本 。 因此,在目标区域上对用户区域进行的任何修改都不会对路由区域中的用户区域产生影响。 例如,在调用启动事务时对用户区域进行的更改对传递到路由完成调用的用户区域没有影响,即使在调用启动事务后发生了后者也是如此。
  2. 传递到目标区域上的第一个 (事务启动) 调用的用户区域是 导致发生事务启动调用的路由区域上的调用所返回的用户区域的副本。 即:
    • 如果路由选择未包含任何错误,那么它是路由选择或通知调用返回的用户区域的副本。
    • 如果发生路由选择错误,那么它是最终路由选择错误调用返回的用户区域的副本。
    • 从不 是路由尝试在路由区域上完成调用所返回的用户区域的副本,即使后者发生在目标区域上的事务启动调用之前也是如此。
戴尔
动态路由程序接口的版本号。 可以通过查找在 SDFHMAC (DFHDYPDS) 中找到的 DFHDYPDS_CURRENT_VER 的值来标识此值。