EXEC CICS LINK 命令 (EXCI)

从 z/OS® 客户机程序链接到服务器 CICS® 区域中的指定服务器程序。

格式

LINK

读取语法图跳过可视语法图 LINK PROGRAM ( 名称 ) RETCODE ( data-area ) SYNCONRETURN COMMAREA(data-area)LENGTH(data-value)DATALENGTH(data-value)CHANNEL(名称)APPLID(名称)TRANSID(名称)
注:

错误条件: CCSIDERRCHANNELERRCODEPAGEERRCONTAINERERR , ENGERR , LINKERR , NOTAUTH , PGMIDERR , RESUNAVAIL , ROLLEDBACK , SYSIDERR , TERMERR 和 WARNING

备注

APPLIDRETCODE 参数外, EXEC CICS LINK 命令的外部 CICS 接口参数与 CICS-CICS DPL 命令的接口参数相同。

此信息仅描述可用于外部 CICS 接口的参数。 有关 EXEC CICS LINK PROGRAM 命令的编程信息,请参阅 LINK

请注意, LENGTHDATALENGTH 参数指定半字二进制值,与 EXCI CALL 接口的相应 COMMAREA_lendata_len 参数指定全字值不同。

外部 CICS 接口 EXEC CICS LINK 命令始终使用通用连接。

参数

可以在 LINK 命令的外部 CICS 接口表单上使用的参数如下所示:
APPLID ( name )
指定目标 CICS 服务器区域的 APPLID。

虽然外部 CICS 接口命令需要 applid ,但此参数在 LINK 命令本身是可选的,因为您还可以在用户可替换模块 DFHXCURM 中指定该参数。 如果从 LINK 命令中省略通用 APPLID ,那么必须确保由用户可替换模块 DFHXCURM 在 URMCICS 参数上指定该标识。 您还可以使用 DFHXCURM 中的 URMCICS 参数来覆盖在 LINK 命令上指定的 applid。 请参阅 EXCI 用户可更换模块 ,以获取有关 URMCICS 参数的信息。

CHANNEL ( 名称 )
指定要提供给被调用程序的通道的名称 (1-16 个字符)。 可接受的字符为 A - Z a - z 0 - 9 $ @ # / % &?!:| " = ¬,; < >. - 和 _。不允许使用前导字符和内嵌空白字符。 如果提供的名称少于 16 个字符,那么将使用最多 16 个字符的尾部空格来填充该名称。 如果该通道不存在,那么将创建该通道。 由于 EXCI 客户机只有一个 LINK 级别,因此此通道仍在作用域内。 有关通道作用域的更多信息,请参阅 通道作用域

通道名称始终采用 EBCDIC。 前面列出的通道名称所允许的字符集包含在所有 EBCDIC 代码页中不具有相同表示法的一些字符。 因此,如果要在不同地区之间运输通道,最好将通道名称的字符限制为 A-Z a-z 0-9 & : =,; < >.- 和 _。

可以指定通道名称 DFHTRANSACTION 以使用事务通道。 在 CICS中,当链路级别发生更改时,事务通道不会超出作用域: 它在事务中始终可访问。 有关更多信息,请参阅 通道和容器

发出 LINK 命令的程序可以在命令上指定通道的名称。 指定的通道可能已存在,由程序使用一个或多个 PUT CONTAINER 命令创建。 或者,程序可以指定当前不存在的通道的名称,在这种情况下将创建新的空通道。

COMMAREA ( data-area )
指定要提供给所调用程序的通信区域。 在此选项中,将传递指向数据区的指针。

请参阅 将数据传递到其他程序 ,以获取有关将数据传递到 CICS 应用程序的更多信息。

DATALENGTH ( data-value )
指定半字二进制值,该值是从 COMMAREA 开始的连续存储区域的长度。 如果 COMMAREA 中的数据量很小,但 COMMAREA 本身很大,请指定 DATALENGTH 以提高性能。
LENGTH ( data-value )
指定半字二进制值,该值是 COMMAREA 的长度 (以字节为单位)。

如果要在任何两个 CICS 服务器之间传递 COMMAREA (对于产品/版本/发行版的任何组合) ,那么此值不应超过 24 KB ,否则,如果您确信将不会在进一步的 LINK 请求中传递 COMMAREA ,那么可以使用最大长度为 32763 的 COMMAREA。

程序 ( name )
指定要向其无条件传递控制权的 CICS 服务器应用程序的程序名 (1-8 个字符)。 指定的名称必须已定义为 CICS 的程序,或者 CICS 服务器区域必须能够自动安装指定程序的定义。
请注意使用引号:
 EXEC CICS LINK PROGRAM('PROGX')
PROGX 在引号中,因为它是程序名。
 EXEC CICS LINK PROGRAM(DAREA)

DAREA 未包含在引号中,因为它是包含 8 字符程序名的数据区的名称。

RETCODE ( data-area )
指定外部 CICS 接口将返回码信息放入的 20 字节区域。 此区域格式化为五个 1–word 字段,如下所示:
RESP
指示外部 CICS 接口 LINK 命令在执行期间是否导致异常情况的主响应代码。
RESP2
辅助响应代码,必要时进一步限定 RESP 参数中提出的某些条件。
ABCODE
如果服务器程序在服务器区域中异常终止,那么包含有效的 CICS 异常终止代码。
MSGLEN
指示执行服务器程序期间 CICS 服务器区域发出的消息 (如果有) 的长度。 请注意,该长度仅是消息文本的实际长度,并且不包含此 1—word 长度字段。
MSGPTR
这是 CICS 服务器区域返回的消息文本的地址。
注: MSGLEN 和 MSGPTR 仅在具有 RESP2 值 414 的 LINKERR 条件下有效。
SYNCONRETURN
指定在 APPLID 参数上指定的 CICS 服务器区域将在服务器程序成功完成时采用同步点。
TRANSID ( 名称 )
指定远程区域要连接的镜像事务的名称,并在该镜像事务下运行服务器程序。 如果省略 TRANSID 选项,那么 CICS 服务器区域将连接 CSMI。
注: LINK 命令上指定的 TRANSID 选项将覆盖安装在 CICS 服务器区域中的程序资源定义上指定的任何 TRANSID 选项。

虽然您可以为 DPL 请求启动的镜像事务指定自己的名称,但事务 必须 在服务器区域中定义,并且事务定义必须指定镜像程序 DFHMIRS。 通过定义您自己的事务以调用镜像程序,您可以自由地为事务资源定义上的某些其他选项指定相应的值。

另请参阅 DPL_Request 中有关用 DPL_Request 指定 transid 的重要规则。.

错误代码

在外部 CICS 接口 LINK 命令上返回的大多数异常条件与 CICS-to-CICS 分布式程序链接命令的异常条件相同。 相同值及其对应的数字值如下所示:
LENGERR
22
PGMIDERR
27
SYSIDERR
53
NOTAUTH
70
TERMERR
81
ROLLEDBACK
82
CONTAINERERR
110
重新可用
121
CHANNELERR
122
CCSIDERR
123
代码页
125

这些异常条件代码在 RESP 字段中返回。

RESP 和 RESP2: 本节中对 RESP 和 RESP2 字段的引用是对 RETCODE 参数的前两个字段的引用。
特定于外部 CICS 接口的异常条件如下所示:
  • 错误条件 LENGERR 上的 RESP2 值特定于外部 CICS 接口。
  • 异常条件 WARNING 和 LINKERR 特定于外部 CICS 接口。
WARNING 和 LINKERR 异常是对外部 CICS 接口为响应 EXEC CICS LINK 命令而发出的各个 EXCI 调用的响应的结果。 这些 WARNING 和 LINKERR 异常对应于 EXCI 调用响应,如描述中所指示。
警告 (RESP 值 4)
当处理 EXEC CICS LINK 请求的 EXCI 模块接收到对代表 EXEC CICS LINK 命令发出的 Close_Pipe 或 Deallocate_Pipe 请求的 USER_ERROR 或 SYSTEM_ERROR 响应时,将返回此消息。 RESP 值设置为 WARNING ,因为针对 CICS 的 DPL 请求已成功完成,但在后续处理中发生错误。

RESP2 字段设置为 EXCI 原因码,这将提供有关错误的更多信息。

LINKERR (RESP 值 88)
当处理 EXEC CICS LINK 请求的 EXCI 模块接收到代表 EXEC CICS LINK 命令发出的 EXCI 调用的 RETRYABLE , USER_ERROR 或 SYSTEM_ERROR 响应时,将返回此消息。 DPL 请求失败。 RESP2 字段设置为 EXCI 原因码,这将提供有关错误的更多信息。

请参阅 EXCI 调用时返回的响应和原因码 ,以获取 EXCI 原因码的描述。

注: 外部 CICS 接口将忽略为响应 EXCI 以 EXEC CICS LINK 命令的名义发出的 EXCI 调用而发生的任何 WARNING 条件。 它将 EXCI 调用上的 WARNING 视为良好响应并正常继续。 如果未发生其他错误,那么 EXEC CICS 命令将在 EXEC_RESP 字段中完成零响应。