传递到动态路由选择程序的参数

参数通过通信区 (COMMAREA) 或容器从 CICS® 中继程序传递到动态路由程序。 副本 DFHDYPDS 将映射位于所有受支持编程语言的相应 CICS 库中的 COMMAREA 或容器。

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

如果使用与动态路由程序和分布式路由程序相同的程序,请参阅 传递到分布式路由程序的参数 ,以获取使用分布式路由调用时重要的参数和值的描述。

DYRABCDE
当路由事务或程序链接请求异常终止或 Link3270 用户事务异常终止时返回的异常终止代码。
DYRABNLC
是异常事件代码,或为空。

当调用动态路由程序以停止路由请求时,此参数很重要。 除空值以外的任何值都指示在请求所路由到的区域中发生了异常事件 (事务异常终止除外)。 在调查并修正错误原因之前,您的路由程序不得将进一步的请求路由到同一区域。

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

戴 RARACMAA
此字段适用于这些项的路由:
  • 终端启动的事务
  • 由终端相关的 START 命令启动的事务
  • 程序链接 (DPL) 请求
对于这些类型的请求的路由, DYRACMAA 包含下列其中一个条目:
  • 用户应用程序使用 COMMAREA 或使用事务路由时应用程序的通信区 (COMMAREA) 的 31 位地址,其中第一个事务在其 EXEC CICS RETURN 命令上指定 COMMAREA 或通道
  • 如果用户应用程序使用通道并在通道中创建了名为 DFHROUTE 的容器,那么这是 DFHROUTE 容器的 31 位地址
  • 如果用户应用程序没有 COMMAREA 和没有 DFHROUTE 容器,那么为空字符。

对于所有其他类型的请求的路由, DYRACMAA 包含空字符。

对于列出的三种类型合格请求的路由,如果用户应用程序使用 COMMAREA ,那么地址取决于动态路由程序的调用方式。
  • 如果为路由调用动态路由程序 (DYRFUNC=0) ,那么这是输入通信区域的地址 (如果可用)。 同样,当由于路由选择错误 (DYRFUNC=1) 或对于通知 (DYRFUNC=3) 而调用路由程序时,地址是输入通信区域的地址。
  • 如果由于先前路由的事务或链接请求已正常结束而调用了路由程序 (DYRFUNC=2) ,那么这是输出通信区域的地址 (如果有)。 路由应用程序可以使用其输出通信区域将信息传递到动态路由程序。

如果您正在路由事务,并且用户应用程序使用通道,那么将为路由程序提供名称而不是通道地址,这意味着您无法使用 DYRCHANL 参数来检查或更改容器的内容。

当由于路由事务异常终止 (DYRFUNC=4) 而调用路由程序时,通信区域或 DFHROUTE 容器中的信息没有意义。

您的路由程序可以更改由 DYRACMAA 寻址的任何应用程序或 DFHROUTE 容器的通信区域中的数据。

戴 RARACMAL
适用于这些项的路由:
  • 终端启动的事务
  • 由终端相关的 START 命令启动的事务
  • 程序链接 (DPL) 请求
对于这些类型的请求的路由, DYRACMAL 包含下列其中一个数字值:
  • 应用程序 COMMAREA 的长度 (以字节计) (如果用户应用程序使用 COMMAREA)
  • 如果用户应用程序使用通道并在通道中创建了名为 DFHROUTE 的容器,那么 DFHROUTE 容器中数据的长度 (以字节计)
  • 如果用户应用程序没有 COMMAREA 和没有 DFHROUTE 容器,那么为零

对于所有其他类型的请求的路由, DYRACMAL 包含零。

DYRACTCMP
不由动态路由程序使用。 在调用时,它设置为 null。
DYRACTID
不由动态路由程序使用。 在调用时,它设置为 null。
戴拉货站
不由动态路由程序使用。 在调用时,它设置为 null。
DYRAPPLICATION

应用程序上下文应用程序名称。 如果没有可用的应用程序上下文,或者当应用程序上下文可用但未设置应用程序名称时,将其设置为空。

DYRAPPLMAJOR

应用程序上下文应用程序主版本。 如果没有可用的应用程序上下文,那么设置为 0 ,如果应用程序上下文可用但未设置应用程序主版本,那么设置为 -1。

戴拉-应用多指标类集调查

应用程序上下文应用程序微版本。 如果没有可用的应用程序上下文,那么设置为 0; 如果应用程序上下文可用但未设置应用程序微版本,那么设置为 -1。

DYRAPPLMINOR

应用程序上下文应用程序次版本。 如果没有可用的应用程序上下文,那么设置为 0 ,如果应用程序上下文可用但未设置应用程序次版本,那么设置为 -1。

DYRAPPLVER

应用程序上下文应用程序版本。 如果没有可用的应用程序上下文,那么所有版本号都设置为 0 ,如果应用程序上下文可用但未设置应用程序版本,那么所有版本号都设置为 -1。

戴拉 BLGTH
是 TIOA DFHLUC 缓冲区副本的长度。

此字段仅适用于动态事务路由或 Link3270 请求 (不适用于程序链接请求的路由)。

戴 RBPNTR
是 TIOA LUC 缓冲区副本的 31 位地址。

此字段仅适用于动态事务路由,而不适用于程序链接请求的路由。

当由于路由选择错误 (DYRFUNC=0) 或通知 (DYRFUNC=3) 而调用动态路由程序进行路由时,将为其提供输入 TIOA 的副本。 路由程序可以更改传递到路由事务的终端输入数据; 请参阅 修改初始终端数据

当由于先前路由的事务已正常结束 (DYRFUNC=2) 而调用路由程序时,将为其提供输出 TIOA 的副本。 您的路由程序可以监视输出 TIOA 以检测 AOR 中可能存在的问题; 请参阅 从路由事务接收信息

当为 Link3270 网桥请求 (DYRTYPE=8) 调用路由程序时,未在 DYRBPNTR 中传递 TIOA LUC 缓冲区副本的地址。

戴尔 RBRTK
是与 Link3270 网桥请求关联的 8 字节网桥设施令牌。 仅当 DYRTYPE=8时,此字段才有效。
戴 RCABP
指示您是否希望 CICS 继续标准异常终止处理。

此字段仅适用于动态事务路由,而不适用于程序链接或 Link3270 请求的路由。 如果链接到程序在远程区域上异常终止,那么会在本地区域中对异常终止进行镜像; 即,会将其传递到发出 EXEC CICS LINK 命令的程序。

:
Y
继续进行 CICS 异常终止处理。
N
停止事务,不继续 CICS 异常终止处理,并对 DYRLPROG 指定的程序进行控制。

您可以使用此选项将控制权传递给本地程序,该程序可以通过控制方式处理条件,并向终端用户发出相应的消息。

如果输入 N ,那么必须确保 DYRLPROG 指定本地系统上有效程序的名称。

没有缺省值适用于 DYRCABP。

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

请注意,为路由程序提供的是通道的 名称 ,而不是其地址,因此无法使用此字段的内容来检查或更改容器的内容。 有关路由程序如何检查或更改应用程序容器内容的信息,请参阅 修改应用程序的容器 以及 DYRACMAA 字段的描述。

动态云
应用程序上下文云路由数据。 它是封装所有其他应用程序上下文字段的容器。 缺省情况下,它设置为 null ,如果没有可用的应用程序上下文。
戴拉 COMP
是 CICS 组件代码。 对于对动态路由程序的调用,它始终设置为 RT。
DYRCOUNT
在 DYRFUNC 设置为 0 , 1 或 3 的情况下,对此事务或链接请求调用动态路由程序的次数。 使用此字段来限制程序尝试路由请求的次数。
DYRDTRRJ
指示是否拒绝或接受由 DTRTRAN 系统初始化参数上指定的公共事务定义所定义的事务进行处理。

此字段仅适用于动态事务路由和 Link3270 请求路由 (不适用于程序链接请求的路由) ,仅当 DYRTRXN 设置为 Y 时才适用。

以下值是有效的:
Y
事务被拒绝。 Y 是缺省值。
N
事务未被拒绝。

当调用动态路由程序时,此参数始终设置为拒绝条件。 要动态路由由 DTRTRAN 系统初始化参数定义的事务,必须将此指示符更改为接受条件。

如果拒绝事务,那么消息为 DFHAC2001。Transaction tranid is unrecognized.,发送到用户终端进行动态事务路由。 对于 Link3270 请求,返回到客户机的 BRIH 包含返回码 (指示未找到事务) 和压缩码 (指示路由程序拒绝了在 DTRTRAN 系统初始化参数上指定的事务)。

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

此字段仅适用于动态事务路由和 Link3270 请求,而不适用于程序链接请求的路由。

以下值是有效的:
Y
事务由 DTRTRAN 系统初始化参数指定的定义定义。 即,没有输入事务标识 (ID) 的资源定义。

对于动态事务路由,将使用 DTRTRAN 系统初始化参数指定的事务标识在终端拥有区域中启动事务。

对于动态事务路由,输入事务标识将传递到 DYRTRAN 字段中的动态路由程序。 对于 Link3270 请求,公共事务定义用于确定请求的路由特征。 请求仍包含原始事务标识,而不是公共事务标识。 如果请求在本地运行,那么请求将成功传递到驱动程序,但驱动程序无法启动用户事务,因为未定义该用户事务。

N
事务未由 DTRTRAN 系统初始化参数指定的定义定义。 输入事务标识存在已安装的资源定义。

对于动态事务路由,将使用输入事务标识在终端拥有区域中启动事务。 在 DYRTRAN 字段中传递到动态路由程序的事务标识是来自事务资源定义的远程事务标识 (如果此标识与输入事务标识不同)。

对于 Link3270 请求,传递到 DYRTRAN 字段中的路由程序的事务标识是 TRANSACTION 资源定义中定义的远程事务标识。

DYRERROR
仅当 DYRFUNC 设置为 1 时才具有值。 DYRERROR 指示上次尝试选择路由期间发生的错误类型。 如果尝试通过 IPIC 连接进行路由失败,并且后续尝试使用同名连接也失败 (由于未找到 SYSID 以外的原因) ,那么将返回尝试通过该连接进行路由时发生的错误类型。 以下值是有效的:
0
所选 SYSID 未知。
1
所选系统未在服务中。
2
所选系统正在使用中,但没有可用的会话。
3
分配请求已被拒绝, SYSIDERR 将返回到应用程序。 发生此错误的原因如下之一:
  • XZIQUE 全局用户出口程序请求拒绝分配
  • CICS 自动拒绝了分配请求,因为已达到 CONNECTION 资源定义上指定的 QUEUELIMIT 值。
4
已清除分配请求的队列,并将 SYSIDERR 返回到所有正在等待的应用程序。 发生此错误的原因如下之一:
  • XZIQUE 全局用户出口程序请求清除队列
  • CICS 自动清除队列,因为已达到 CONNECTION 资源定义上指定的 MAXQTIME 限制。
5
所选系统不支持此功能。 如果路由程序尝试执行下列其中一项操作,那么会发生此值:
  • EXEC CICS START 命令启动的事务路由到未通过 MRO 或 APPC 并行会话链路连接的区域。
  • 通过 LU6.1 连接路由事务,程序链接或 Link3270 请求。
  • 将 Link3270 请求路由到处于不受支持的 CICS发行版的区域。
  • 将事务跨 IPIC 连接路由到CICS TS for z/OS®V 4.1 区域之前的区域。
  • 通过 IPIC 连接路由 APPC 设备。

值 6-B 全部应用于路由程序链接请求的尝试。 有关这些错误条件的含义,请参阅 LINK

6
EXEC CICS LINK 命令返回了 LENGERR。
7
EXEC CICS LINK 命令返回了 PGMIDERR。
8
EXEC CICS LINK 命令返回 INVREQ。
9
EXEC CICS LINK 命令返回了 NOTAUTH。
A
EXEC CICS LINK 命令返回了 TERMERR。
B
EXEC CICS LINK 命令返回了 ROLLEDBACK。
F
目标区域上的 XPCERES 全局用户出口程序设置了返回码 UERCRESU ,这意味着所需资源在目标区域上不可用。 为程序链接, Link3270 网桥和非终端相关的 START 请求设置了此错误代码。
戴 RFUNC
告诉您此动态路由程序调用的原因。 以下值是有效的:
0
针对路由选择调用。
1
由于在路由选择中发生错误而调用。
2
已调用,因为先前路由的事务或程序链接请求已成功结束,或对用户事务已成功结束的请求调用。
3
用于通知静态路由的请求的目标。 此通知适用于以下情况:
ATI 请求
定义为 DYNAMIC (YES) 的事务已由与终端相关的自动事务启动 (ATI) 请求 (例如,时间间隔控制启动请求到期) 启动,但该事务不适合动态路由。

有关哪些由终端相关 EXEC CICS START 命令启动的事务适合动态路由的信息,请参阅 START 命令调用的路由事务

程序链接请求数
程序定义为 DYNAMIC (YES) ,或未定义,但调用者在 EXEC CICS LINK 命令的 SYSID 选项上指定了远程区域的名称。

在这种情况下,指定目标区域明显优先于由动态路由程序返回的任何 SYSID。

网桥请求
在会话方式下,请求的事务不是第一个用户事务,并且定义为 DYNAMIC (YES)。
4
由于路由的事务或请求的用户事务异常终止而调用。
7
调用以标识结束工作单元处理的调用

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

Dyrlevel
目标 AOR 中成功处理路由请求所需的 CICS 级别。 以下值是有效的:
X'00 '
任何当前受支持的 CICS 版本都能够处理请求。
X'01'
. 此值仅针对企业 Bean 和 CORBA 无状态对象 (由分布式路由程序处理) 的方法请求设置。
X'02'
. 此值仅针对企业 Bean 和 CORBA 无状态对象 (由分布式路由程序处理) 的方法请求设置。
X'03'
CICS TS for z/OSV 3.1。 为这些请求设置了此值:
  • 具有关联通道的 DPL 请求。
  • 具有关联通道的 START 请求。
  • 入站 Web Service 请求 (由分布式路由程序处理)。
  • 企业 Bean 和 CORBA 无状态对象的方法请求 (由分布式路由程序处理)。
X'04'
CICS TS for z/OSV 3.2

请注意,大于 X'00 ' 的值指示成功处理请求所需的 特定级别,而不是最低级别 CICS 。

此参数帮助您对多区域逻辑服务器执行 滚动升级 ; 一次将一个区域从 CICS 的一个发行版升级到下一个发行版,而不关闭服务器。 需要特定级别的 CICS 的请求可以路由到相应的 AOR。

此混合操作级别 (同一逻辑服务器中的不同 CICS 区域位于 CICS的不同级别) 仅用于滚动升级。 它不用于永久使用,因为它会增加在某些互操作性场景中发生故障的风险。 建议的正常操作方式是逻辑服务器中的所有区域都处于 CICS 和 Java™的同一级别。
(DYRLPROG)
是要路由的事务的第一个程序的名称或要路由的链接命令上指定的程序的名称。
事务路由
可以使用此字段来指定在本地路由事务时要运行的备用程序的名称。 例如,如果所有远程 CICS 区域都不可用,并且无法路由事务,那么您可能希望在本地终端拥有区域中运行程序以向用户发送相应的消息。

指定 DYRCABP=N 时,请勿将 DYRLPROG 设置为空白。 如果指定 DYRCABP=N ,请确保还在 DYRLPROG 上指定有效的程序名。

程序链接请求数
当 DYRFUNC 设置为 0 或 3 时, DYRLPROG 包含要链接的程序的名称,使用以下序列获取:
  1. 从已安装程序定义的 REMOTENAME 选项。
  2. 如果未指定 REMOTENAME ,或者没有程序定义,请使用 EXEC CICS LINK 命令的 PROGRAM 选项。

可以使用此字段来指定要链接的替代程序 (不是在程序链接请求上指定的程序)。 根据要将请求路由到的区域,可以指定本地或远程程序。

请注意,如果更改 DYRLPROG 的值,并且您选择的备用程序定义为 DYNAMIC (YES) ,那么将重新调用动态路由程序以进行路由选择。

网桥请求
当 DYRTYPE=8时,请勿更改此字段; CICS将忽略所做的任何更改。

您可以在对动态路由程序的任何调用上更改 DYRLPROG ,但仅当 DYRFUNC 设置为 0 或 1 时才有效。

戴罗罗
8 字节的本地工作单元标识。 此令牌构成 LOCKED 亲缘关系类型的密钥的一部分。

仅当 DYRTYPE=4 , 9 (DPL) 或 DYRFUNC=7 (工作单元结束) 时,此字段才有效。 DYRTYPE 4 是没有 CHANNEL 的 DPL , DYRTYPE $TAG2 是具有 CHANNEL 的 DPL。

DYRNETNM
DYRSYSID 中标识的 CICS 区域的网络名。

如果动态路由程序的初始调用更改了 DYRNETNM 值,那么 CICS 会尝试使用新的网络名将请求路由到 CICS 区域。

DYRNUOW
27 字节的网络工作单元标识。 此令牌构成 LOCKED 亲缘关系类型的密钥的一部分。

仅当 DYRTYPE=4 , 9 (DPL) 或 DYRFUNC=7 (工作单元结束) 时,此字段才有效。

DYROPERATION

应用程序入口点的应用程序上下文操作名称。 如果没有可用的应用程序上下文,那么将其设置为空。

戴罗德
指定在路由事务或链接请求结束 (成功或未成功) 时是否重新调用动态路由程序。 以下值是有效的:
N
不需要重新调用动态路由程序。 N 是缺省值。
Y
将重新调用动态路由程序。

可以对路由到远程 CICS 区域的事务,链接请求或网桥请求以及本地运行的事务,链接请求或网桥请求指定此选项。

DYRPLATFORM

部署应用程序的平台的应用程序上下文平台名称。 如果没有可用的应用程序上下文,或者当应用程序上下文可用但未设置平台名称时,那么会将其设置为空。

DYRPROCCMP
不由动态路由程序使用。 在调用时,它设置为 null。
DYRPROCID
不由动态路由程序使用。 在调用时,它设置为 null。
DYRPROCN
不由动态路由程序使用。 在调用时,它设置为 null。
戴拉 PROCT
不由动态路由程序使用。 在调用时,它设置为 null。
戴拉 PRTY
如果终端拥有区域和应用程序拥有区域之间的连接是 MRO 或 IPIC ,或者在处理网桥请求时,可以用于在应用程序拥有区域中设置任务的分派优先级。
事务路由
在调用动态路由程序之前, CICS 将此值设置为中继事务任务的优先级。
程序链接请求数
在调用动态路由程序之前, CICS 将此值设置为发出程序链接请求的任务的优先级。
网桥请求
在调用动态路由程序之前, CICS 将此值设置为路由器区域中用户事务的 TRANSACTION 资源定义中定义的值。

从动态路由程序的初始调用返回时,如果 DYRRTPRI 值为 Y ,并且终端拥有区域和应用程序拥有区域之间存在 MRO 或 IPIC 连接,那么 CICS 会将 DYPPRTY 值传递到应用程序拥有区域。

DYRQUEUE
标识如果没有会话立即对 DYRSYSID 标识的远程系统可用,那么是否将请求排队。 以下值是有效的:
Y
如果需要,将对请求进行排队。 Y 是缺省值。
N
请求不排队。

对于网桥请求,在调用动态路由程序之前, DYRQUEUE 设置为 Y。 CICS将忽略用户可替换程序对此值所作的任何更改。

戴雷特
包含用于告知 CICS 如何继续的返回码。
事务路由
以下值是有效的:
0
继续处理事务。
4
在没有消息或异常结束的情况下停止事务。
8
使用消息或异常结束来停止事务。

每当调用路由程序时, DYRRETC 都会设置为 0。 当为路由选择而调用它时,或者由于路由选择中发生错误而调用它时,如果您希望 CICS 继续处理事务,那么必须将其设置为 0。

要使 CICS 停止事务并发出消息或异常终止并返回值 8。

要使 CICS 停止事务而不发出消息或异常终止 (指示 DFHDYP 已完成所有必需的处理) ,请返回值 4。

为 APPC 事务路由设置返回码 4 会导致不可预测的结果,应该避免。

设置除 4 以外的任何非零返回码等同于设置 8。

程序链接请求数
以下值是有效的:
0
继续处理链接请求。
非零
将错误条件返回到程序。

每当调用路由程序时, DYRRETC 都会设置为 0。 当为路由选择调用它时,或者由于路由选择发生错误,如果您希望 CICS 继续处理链接请求,那么必须将其设置为 0。

要使 CICS 拒绝链接请求,请返回非零值。 发出 EXEC CICS LINK 命令的程序接收 PGMIDERR 条件,其 RESP2 值为 27。

网桥请求
以下值是有效的:
0
继续处理请求。
4
停止处理请求而不发出任何错误消息。
8
停止处理带有错误消息的请求。

每当调用路由程序时, DYRRETC 都会设置为 0。 当为路由选择调用它时,或者由于路由选择发生错误,如果您希望 CICS 继续处理链接请求,那么必须将其设置为 0。

要使 CICS 停止请求而不发出消息,请返回值 4。 返回到客户机的 BRIH 消息头包含通知客户机动态路由程序已拒绝请求的返回码,以及提供上次尝试路由请求失败原因的详细信息的压缩码。

要使 CICS 停止请求并发出消息,请返回值 8。 返回到客户机的 BRIH 包含一个返回码,用于通知客户机动态路由程序已拒绝请求,以及一个压缩代码,用于提供上次尝试路由请求失败的原因的详细信息。

当为通知或在事务终止时调用路由程序时,不设置返回码。 CICS将忽略您设置的任何代码。

DYRRTPRI
指示是否将事务,链接请求或请求的分派优先级传递到应用程序拥有区域 (如果终端拥有区域与应用程序拥有区域之间的连接是 MRO 或 IPIC)。 以下值是有效的:
N
未传递分派优先级。 N 是缺省值。
Y
已传递分派优先级。
戴拉 SRCTK
是所路由事务的 MVS™ 工作负载管理服务和报告类令牌。 路由程序不得变更此值,此值由 CICS 设置并由 CICSPlex SM 使用。
DYRSYSID
是 CICS 区域的系统标识 (SYSID)。 此参数的确切含义取决于 DYRFUNC 和 DYRTYPE 的值:
  • 当 DYRFUNC 设置为 0 (路由选择) 时:
    • 如果 DYRTYPE 设置为 0 , 2 , 3 或 8 (任何类型的事务路由) ,那么 DYRSYSID 包含下列其中一个名称:
      • 在已安装事务定义的 REMOTESYSTEM 选项上指定的 CICS 区域名称
      • 如果未指定 REMOTESYSTEM ,那么为本地 CICS 区域的系统名称
    • 如果 DYRTYPE 设置为 4 或 9 (DPL 路由) ,那么 DYRSYSID 包含下列其中一个名称:
      • 在已安装的程序定义的 REMOTESYSTEM 选项上指定的 CICS 区域名称。
        注: 如果 REMOTESYSTEM 选项指定远程区域,那么路由程序无法在本地路由请求。
      • 如果未指定 REMOTESYSTEM ,或者没有程序定义,那么是本地 CICS 区域的系统名称。

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

    如果返回到 CICS 的 SYSID 与本地 SYSID 相同,那么 CICS 将在本地区域中运行事务或程序。

  • 当 DYRFUNC 设置为 1 (路由选择错误) 时, DYRSYSID 包含动态路由程序在其先前调用时返回到 CICS 的 CICS 区域名称。
    当 DYRFUNC=1 依赖于 DYRERROR 参数设置时,动态路由程序可以执行的操作:
    • 如果 DYRERROR 设置为 0 (未知 SYSID) 或 1 (CICS 区域不在服务中) ,并且您希望 CICS 重试路由,那么必须在返回到 CICS之前更改 DYRSYSID。
    • 如果 DYRERROR 设置为 2 (无可用会话) ,并且您希望 CICS 重试路由,那么必须更改 DYRSYSID 或将 DYRQUEUE 的值更改为 Y (将请求排队直到会话可用)。
  • 当 DYRFUNC 设置为 2 (路由请求结束) 时, DYRSYSID 包含运行已完成事务或链接请求的 CICS 区域的名称。
  • 当 DYRFUNC 设置为 3 (通知) 时:
    • 对于 ATI 请求, DYRSYSID 包含下列其中一个名称:
      • EXEC CICS START 命令的 SYSID 选项上指定的远程 CICS 区域名称
      • 如果未指定 SYSID ,那么将在已安装的事务定义的 REMOTESYSTEM 选项上指定远程 CICS 区域名称
      • 如果未指定 REMOTESYSTEM ,那么为本地 CICS 区域的系统名称。
    • 对于程序链接请求, DYRSYSID 包含在 EXEC CICS LINK 命令的 SYSID 选项上指定的远程 CICS 区域名称。
    • 对于网桥请求, DYRSYSID 包含在其中路由请求并运行用户事务的 CICS 区域的 SYSID。

    将忽略对 DYRSYSID 或 DYRNETNAME 的值所作的任何更改。

  • 当 DYRFUNC 设置为 4 (异常终止) 时, DYRSYSID 包含事务异常终止所在的 CICS 区域的名称。
DYRTRAN
包含远程事务标识。
事务路由
当 DYRFUNC 设置为 0 或 3 时, DYRTRAN 包含在已安装的 TRANSACTION 资源的 REMOTENAME 选项上指定的远程事务标识。
网桥请求
当 DYRTYPE=8时, DYRTRAN 包含目标用户事务的事务标识,因为它在当前区域中已知。 请注意,这与当前事务标识不同。
程序链接请求数
当 DYRFUNC 设置为 0 或 3 时, DYRTRAN 包含使用以下顺序获取的远程镜像事务的事务标识:
  1. 从 LINK 命令的 TRANSID 选项。
    注: 在 LINK 命令的 TRANSID 选项上指定的值不能被路由程序覆盖。
  2. 从程序定义的 TRANSID 选项。
  3. CSMI 通用镜像事务。 如果未指定任何 TRANSID 选项,那么 CSMI 是缺省值。

动态路由程序可以接受此远程事务标识,或提供其他事务名称以转发到远程 CICS 区域。 如果提供的名称超过四个字符,那么 CICS将截断该名称。

您可以在对动态路由程序的任何调用上更改 DYRTRAN ,但更改仅在以下情况下有效:
  • 当 DYRFUNC 设置为 0 或 1 时。
  • 如果未从 EXEC CICS LINK 命令的 TRANSID 选项获取原始值。 LINK 命令的 TRANSID 选项上指定的值不能被路由程序覆盖。
DYRTYPE
要为其调用程序的路由请求的类型。 对于事务路由,仅当 DYRFUNC 设置为 0 (路由选择) 或 3 (通知) 时,此字段才有意义。 可以将这些值传递到动态路由程序:
0
从终端启动的事务。
1
要静态路由的 ATI 请求。
2
由与终端相关的 EXEC CICS START 命令启动的事务,其中没有与 START 关联的数据和通道。
3
由与终端相关的 EXEC CICS START 命令启动的事务,其中有数据但没有与 START 关联的通道。
4
没有通道的程序链接请求。
8
网桥请求。
9
具有通道的程序链接请求。
A
由与终端相关的 EXEC CICS START 命令启动的事务,其中存在与 START 关联的通道。
DYRUAPTR
如果 DYRVER 为 7 或更大值,那么此字段包含新用户区域 DYRUSERN 的地址。 新的用户区域机制使路由程序的源独立于创建通信区域的 CICS 发行版。 仅出于兼容性目的保留旧用户区域字段 DYRUSER。

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

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

DYRUOWAF
此字段由被调用用户出口应用程序用于通知 CICS ,当当前网络工作单元完成时, DYRTPE=4 或 9 (DPL) 请求需要 FUNC=7 回调。
在收到来自 CICS 的调用 DYRUOWAF 后,该字段不包含任何相关数据,仅用于针对 DPL 请求提供对 CICS 的响应。 以下值是有效的:
N
不需要回调。
Y
需要回调。

对于 UOW 的多个 DPL 调用,如果任何调用返回 Y ,那么在 UOW 结束时将发生回调。

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

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

DYRUSERID
是与请求关联的 CICS 用户标识。

对于事务路由,程序链接请求和网桥请求, DYRUSERID 包含用于运行当前事务的用户标识。

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

DYRUSERN
是 1024 字节的用户区域。

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

戴尔
动态路由程序接口的版本号。 对于 z/OS 的 CICS 事务服务器, V 5 发行版 4,该数字为 11。