TDQUEUE(瞬态数据队列) 资源定义

TDQUEUE 定义定义了瞬时数据队列的属性。

可以使用 RDO 来管理以下瞬时数据资源:
  • 分区内定义 包含一些属性,这些属性提供有关恢复特征,触发器级别,关联事务,设施和用户标识的信息。
  • 分区外定义 包含有关关联 QSAM 数据集以及要使用的缓冲区数的信息。
  • 间接定义 标识底层队列名称。
  • 远程定义 包含远程系统的名称以及该远程系统上用于识别队列的名称。

在活动 CICS® 系统可以使用瞬时数据队列之前,必须在正在运行的系统中安装其定义。 CICS 使用定义来访问与队列关联的数据集,并记录队列上的读写操作数。

可以通过以下两种方法之一使用 CEDA 事务来定义远程瞬时数据队列:
  • 如果省略了队列 TYPE ,并且仅在定义的 REMOTE ATTRIBUTES 部分中输入数据,那么将创建远程定义。
  • 如果指定了 TYPE 或 EXTRA ,并且完成了 REMOTE ATTRIBUTES 部分,那么将同时建立本地资源和远程资源。 请参阅 瞬时数据的两用资源定义 中的 图 1 ,以获取定义两用瞬时数据资源定义的示例。

有关安装,替换或禁用 TDQUEUE 资源定义的信息,请参阅 安装 TDQUEUE 资源定义。 有关使用 BAS 的信息,请参阅 使用 BAS 瞬时数据队列资源定义

语法

读取语法图跳过可视语法图TDQUEUE( 名称)GROUP( groupName)DESCRIPTION( 文本)TYPE(EXTRA)分区外队列的属性TYPE(INTRA)分区内队列的属性TYPE(INDIRECT)间接队列的属性未指定 TYPE 的远程队列的属性
分区外队列的属性
读取语法图跳过可视语法图BLOCKSIZE( 长度)DATABUFFERS(1)DATABUFFERS( 号)DDNAME( ddname)DISPOSITION(SHR)DISPOSITION(OLD)DISPOSITION(MOD)JOBUSERID( 用户标识符)ERROROPTION(IGNORE)ERROROPTION(SKIP)OPENTIME(INITIAL)OPENTIME(DEFERRED)RECORDFORMAT(FIXED)RECORDFORMAT(VARIABLE)BLOCKFORMAT(BLOCKED)BLOCKFORMAT(UNBLOCKED)PRINTCONTROL(A)PRINTCONTROL(M)RECORDSIZE(1)RECORDSIZE( 号)REMOTESYSTEM( 连接 (connection))REMOTELENGTH( 号)REMOTENAME( TDQUEUE)REWIND(LEAVE)REWIND(REREAD)TYPEFILE(INPUT)DSNAME(DUMMY)DSNAME( dsname)TYPEFILE(OUTPUT)SYSOUTCLASS( )SYSOUTCLASS( 类 (class))DSNAME(DUMMY)DSNAME( dsname)TYPEFILE(RDBACK)DSNAME(DUMMY)DSNAME( dsname)
分区内队列的属性
读取语法图跳过可视语法图ATIFACILITY(TERMINAL)FACILITYID( 终端)ATIFACILITY(FILE)ATIFACILITY(SYSTEM)FACILITYID( 连接 (connection))RECOVSTATUS(NO)RECOVSTATUS(LOGICAL)RECOVSTATUS(PHYSICAL)REMOTESYSTEM( 连接 (connection))REMOTELENGTH( 号)REMOTENAME( TDQUEUE)TRANSID( 事务)TRIGGERLEVEL(1)TRIGGERLEVEL( 号)USERID( 用户标识符)WAIT(YES)WAITACTION(REJECT)WAITACTION(QUEUE)WAIT(NO)
间接队列的 TDQUEUE 属性
读取语法图跳过可视语法图INDIRECTNAME( TDQUEUE)REMOTESYSTEM( 连接 (connection))REMOTELENGTH( 号)REMOTENAME( TDQUEUE)
未指定 TYPE 的远程队列的 TDQUEUE 属性
读取语法图跳过可视语法图REMOTESYSTEM( 连接 (connection))REMOTELENGTH( 号)REMOTENAME( TDQUEUE)

属性

ATIFACILITY({TERMINAL|FILE|SYSTEM}) (仅限分区内队列)
指定队列表示的目标类型。
FILE
瞬时数据队列将用作不与特定终端或系统关联的数据记录的文件。 ATI 不要求终端可用。
SYSTEM
瞬时数据队列将与指定的系统标识相关联。 必须将系统定义为使用 RDO CONNECTION 定义的本地 CICS 系统。

指定 ATIFACILITY (SYSTEM) 将启动分布式事务处理 (DTP) 会话。

终端
瞬时数据队列将与终端关联。 终端必须定义为 CICS。 如果您未指定 TERMINAL,它将缺省设为值 FACILITYID。 如果使用 ATI(如 TRANSID 和 TRIGGERLEVEL 属性中所指定的那样),那么已启动的事务会与指定的终端关联,在事务可以启动之前,该终端必须可用。
BLOCKFORMAT({BLOCKED|UNBLOCKED|空白}) (仅限分区外队列)
指定数据集的块格式。 没有缺省值。 如果将记录格式(RECORDFORMAT 属性)指定为未定义(或使用其缺省值),那么无法为 BLOCKFORMAT 属性指定任何内容。
空白
指示没有为此数据集定义块格式。 如果将 RECORDFORMAT 留空,请将此字段留空。
已阻止
已阻止的记录格式。
已取消阻止
未阻止的记录格式。
强烈建议您为用作 JES 内部阅读器接口的分区外队列指定未阻塞的记录格式。 如果使用分块记录格式,那么您的作业将保留在 SYSOUT 数据集中,并且在发生下列其中一项操作之前不会直接发送到 JES:
  • 您可以在 JES /*EOF 控制语句后使用第二个 /*EOF 语句。
  • 应用程序将另一个作业写入同一队列。
  • 在写入作业后显式关闭队列。
  • 正常关闭 CICS 。
BLOCKSIZE({length}) (仅限分区外队列)
指定块的长度 (以字节计) ,范围为 0 到 32767。
您可以指定的最大值取决于是显式指定 SYSOUTCLASS 还是缺省指定 SYSOUTCLASS ,以及 RECORDFORMAT 是 FIXED 还是 VARIABLE。
  • 如果指定 SYSOUTCLASS ,那么 RECORDSIZE 的最大值为 8968。
  • 变量格式数据集中的每个块都由一个块描述符字后跟一个或多个逻辑记录组成。 因此,如果指定 RECORDFORMAT (VARIABLE) ,那么为 BLOCKSIZE 指定的值必须包含块描述符字的 4 字节,以及最大可能的逻辑记录的空间。

下表概述了这些限制:

DATABUFFERS({1|number}) (仅限分区外队列)
指定要提供的缓冲区数,最多为 255。
DDNAME( ddname )
指定可引用启动 JCL 中定义的数据集的 1-to 8 字符值。 除非名称描述其中一个标准目标,否则名称不得以保留供 CICS使用的字符 DFH开头。
DESCRIPTION(文本)
您可以提供在此字段中定义的资源的描述。 描述文本的长度最多可以为 58 个字符。 您可以使用的字符没有任何限制。 但是,如果使用括号,请确保对于每个左括号都有一个匹配的右括号。 如果使用 CREATE 命令,那么对于文本中的每个单撇号,将编码两个撇号。
DISPOSITION({SHR|OLD|MOD}) (仅限分区外队列)
指定数据集的处置。
MOD
CICS 首先假定数据集存在。 对于现有连续数据集,MOD 会使得读/写机制置于数据集的最后一条记录后。 每当打开数据集进行输出的时候,读/写机制就会置于最后一条记录后。

如果 CICS 在 DD 语句上,在目录中找不到数据集的卷信息,或者从先前步骤随数据集一起传递,那么它假定正在此作业步骤中创建数据集。 当队列关闭时,将删除以此方式动态分配的数据集,并且所有记录都将丢失。

对于新的数据集, MOD 会使读/写机制位于数据集的开头。

OLD
数据集在此作业步骤之前已存在。
SHR
数据集在此作业步骤之前已存在,并且可以由其他并发作业读取。
DSNAME({dsname|DUMMY}) (仅限分区外队列)
指定要用于存储写入此分区外队列的记录的 QSAM 数据集的名称。
可接受的字符:

A-Z 0-9 $@ #.-

有效字符在代码页 IBM® -037 显示时列出。 如果使用不同的 EBCDIC 代码页,请注意 变体角色 中记录的变体字符。

当 CICS 接收到打开分区外瞬时数据队列的请求时,将引用启动 JCL 以检查是否已创建数据集定义。 如果找不到名称,那么将使用 DSNAME 属性上指定的 44 个字符的名称来动态分配所需的数据集。

如果您具有为此队列预分配 DSCNAME 值到 DSNAME 值的 JCL ,那么资源定义中的 DSNAME 值将被 JCL 中的 DSNAME 值覆盖。 JCL 分配始终具有优先级。

DNAME 属性不支持分区数据集 (PDS)。 如果要将 PDS 成员用于分区外队列数据集,请在 JCL 中对其进行显式编码。 请记住,如果查询此队列,那么返回的 DSNAME 值不会指示成员名。
DUMMY
哑元数据集名称。
名称
物理数据集的 44 个字符的名称。
注意: 如果将日志流用于分区外队列数据集,那么可能会出现不可预测的结果。
ERROROPTION({IGNORE|SKIP}) (仅限分区外队列)
指定发生 I/O 错误时要执行的操作。 这可以是下列其中一项:
忽略
接受导致错误的块。
跳过
将跳过导致错误的块。
FACILITYID(终端|连接) (仅限分区内队列)
指定包含以下任一项的 4 字符字段:
  • 指定 ATIFACILITY (SYSTEM) 的分区内队列的系统标识
  • 在其中指定 ATIFACILITY (TERMINAL) 的终端标识

如果您未在 FACILITYID 字段中指定任何值,那么在所有情况下,该字段都缺省为队列名称。

如果指定了 ATIFACILITY (FILE) ,那么 FACILITYID 字段必须保留为空。

GROUP 组名
每个资源定义都必须具有 GROUP 名称。 资源定义成为组的成员,并在安装组时安装在 CICS 系统中。
可接受的字符:

A-Z 0-9 $ @ #

当代码页为 IBM-037时,有效字符将按其呈现方式列出。 如果使用不同的 EBCDIC 代码页,请注意 变体角色 中记录的变体字符。

输入的任何小写字符都将转换为大写。

GROUP 名称的长度最多可以为 8 个字符。 小写字符被视为大写字符。

INDIRECTNAME(tdqueue) (仅限间接队列)
指定此间接队列将数据路由到的瞬时数据队列的名称。 瞬时数据队列必须定义到 CICS,并且可以是分区内,分区外,远程或间接。
JOBUSERID(userid) (仅限分区外队列)
指定用户标识,如果 JCL 包含作业卡而未指定 USER 参数,那么将在该用户标识下运行提交给内部阅读器的 JCL 作业。 当使用 JOBUSERID 参数定义瞬时数据队列时,将对安装该定义的用户执行代理用户安全性检查。 有关信息,请参阅 代理安全性

如果未定义 JOBUSERID ,那么缺省值为 CICS 区域用户标识。

注: 当已安装具有指定 JOBUSERID 的 TDQUEUE 资源定义并且该定义正在 CICS 区域中使用时,如果要将其 JOBUSERID 更改为空白,那么必须先关闭并废弃 TDQUEUE ,然后再重新安装已更改的 TDQUEUE 资源定义。 如果在重新安装之前未关闭并废弃 TDQUEUE ,那么将继续使用先前指定的 JOBUSERID。

如果将其 JOBUSERID 更改为任何其他特定值,那么不需要废弃步骤。

OPENTIME({INITIAL|DEFERRED}) (仅限分区外队列)
指定数据集的初始状态。 初始状态可以是下列其中一个值:
推迟
数据集将保持关闭状态,直到您指示要使用 CEMT INQUIRE TDQUEUECEMT SET TDQUEUE 命令将其打开为止。
初始
将在安装时打开数据集。 但是,如果未指定 DSNAME 属性,并且未在启动 JCL 中的 DD 语句中指定数据集名称,那么在 CICS 启动期间会将瞬时数据队列分配给 JES。
PRINTCONTROL({ASA|MACHINE|空白}) (仅限分区外队列)
指定要使用的控制字符。 没有缺省值。
如果允许 RECORDFORMAT 缺省为空白,那么不能在 PRINTCONTROL 字段中指定任何内容。 您可以使用以下字符:
行动协调局
ASA 控制字符。
空白
不使用任何控制字符。
机器
机器控制字符。
RECORDFORMAT({FIXED|VARIABLE|空白) (仅限分区外队列)
指定数据集的记录格式。
空白
如果未指定 RECORDFORMAT (即,保留空白) ,那么 BLOCKFORMAT 和 PRINTCONTROL 字段也必须保留空白。 如果未在资源定义中指定 RECORDFORMAT ,那么 TD 会在尝试打开队列时尝试从 CICS 启动 JCL 或 QSAM 数据集定义派生此属性。 如果无法从这些源中的任何一个源派生此信息,那么打开请求将失败。
固定
固定记录。 如果指定 RECORDFormat(Fixed),那么还必须指定块格式。
变量
变量记录。 如果指定 RECORDFormat (Variable) ,那么还必须指定块格式。
RECORDSIZE({1|number}) (分区外和远程队列)
指定记录长度 (以字节计) ,范围在 0 到 32767 之间。
1
缺省记录长度为 1 字节。
数字
记录长度 (以字节为单位) ,最多为 32767。
您可以指定的最大值取决于是显式指定 SYSOUTCLASS 还是缺省指定 SYSOUTCLASS ,以及 RECORDFORMAT 是 FIXED 还是 VARIABLE。
  • 如果指定 SYSOUTCLASS ,那么 RECORDSIZE 的最大值为 8968。
  • 对于 V 格式数据集,每个逻辑记录由后跟数据记录的记录描述符组成。 在 RECORDSIZE 字段中输入的值必须包含记录描述符字 (或 LLBB) 的 4 字节,并且应该允许最大可能的数据记录。
这些限制在 BLOCKSIZE 属性的描述中进行了概述。

如果使用 RECORDSIZE (0) 定义了 TDQUEUE ,那么记录长度将从输入或输出队列操作的数据集 DCB LRECL 参数中获取。

如果使用非零 RECORDSIZE 定义了 TDQUEUE ,那么 EXEC CICS READQEXEC CICS WRITEQ 命令的 LENGTH 参数必须等于 RECORDSIZE 值,并且将覆盖底层 DCB LRECL 值。

RECOVSTATUS({NO|PHYSICAL|LOGICAL}) (仅限分区内队列)
指定在 CICS 或正在处理队列的事务异常终止时队列的可恢复性属性。 可恢复性属性包括:
逻辑
此队列在逻辑上可恢复。 将执行自动日志记录以跟踪应用程序的访问。 如果某个访问过该队列的事务在异常终止时仍处在运行之中,或者处于随后的紧急重新启动或动态事务回退过程中,那么会将队列恢复为正在运行的 UOW 对它进行修改前的状态。

访问此队列时,发出 DELETEQ TD , WRITEQ TD 或 READQ TD 命令的任务将在瞬时数据队列的输入端,输出端或两端进行排队。 将保留入队,直到任务终止 (或发出同步点请求以指示 UOW 结束) ,以确保所访问数据的完整性。 这意味着入队可以保持较长时间,如果访问队列的应用程序对队列执行多个 UOW ,而不通过发出同步点请求向 CICS 定义每个单独的 UOW ,那么可能会导致队列锁定。

此外,当对逻辑可恢复的队列发出 DELETEQ 请求时,队列的输入端和输出端都将排队。 这可能会增加入队锁定的可能性。

注: CICS 为逻辑可恢复 (不同于物理可恢复) TD 队列提供了类似于可恢复文件的排队保护设施。 但是, CICS 将每个逻辑上可恢复的目标视为两个单独的可恢复资源,一个用于写入,另一个用于读取。

对于文件记录,将记录视为单个资源,并且只需要一个锁定。 TD 队列则有两个 '端' -- 读端和写端,这些都可以独立排队 (锁定)。 这是因为,要控制从 TD 队列 (同时) 读取和写入, CICS 必须保留两个指针 (游标)-一个用于读取,另一个用于写入,并且需要保护这些指针免受冲突事务的影响。

队列记录按一个或多个控制时间间隔 (CI) 保存。 一旦读取了每个 CI 上的最后一条记录,就会将其标记为待发布。 但是,直到任务结束或下一个用户同步点之后才会发生发布。

此队列不可恢复。 不执行自动日志记录以跟踪对此队列的访问。 队列记录按一个或多个控制时间间隔 (CI) 保存。 读取每个 CI 上的最后一个记录后,就会立即释放该 CI。
物理
此队列可物理恢复。 将执行自动日志记录以跟踪应用程序的访问。 如果发生紧急重新启动,该队列将恢复为 CICS 终止时的状态。

如果队列上的最后一个操作是 READQ 请求,并且关联的工作单元 (UOW) 未落实更改,那么在 CICS 终止时,队列 恢复到其状态。 在紧急重新启动时,将回退最后一个读操作,并且似乎从未执行过该操作。

队列记录按一个或多个控制时间间隔 (CI) 保存。 读取每个 CI 上的最后一个记录后,就会立即释放该 CI。

REMOTENAME(tdqueue) (仅限远程队列)
如果瞬时数据队列位于远程系统上,那么指定在队列所在的系统或区域中用于识别队列的 4 字符名称。
可接受的字符:

A-Z a-z 0-9 $ @ #./ - _ % &?!:| " = ¬,; < >

当代码页为 IBM-037时,有效字符将按其呈现方式列出。 如果使用不同的 EBCDIC 代码页,请注意 变体角色 中记录的变体字符。

REMOTELENGTH({1|number}) (仅限远程队列)
指定范围在 1 到 32767 之间的长度 (以字节为单位)。
对于 SYSOUT 数据集,在REMOTEL思字段中输入的值不得大于 8968 字节 (当指定了 SYSOUTCLASS 属性时)。
1
长度为 1 字节。
数字
长度 (以字节为单位) ,最多 32767。

如果使用 TYPE=EXTRA 定义队列,并且没有为REMOTEL思指定任何值,那么将在安装时使用 RECORDSIZE 属性上的值。

REMOTESYSTEM(连接)
指定远程瞬时数据队列所在的系统或区域的 4 字符字母数字名称。 输入的名称必须与 RDO CONNECTION 上指定的名称或 RDO IPCONN 定义上指定的名称的前 4 个字符相同。 有关连接定义的更多信息,请参阅 CONNECTION 资源IPCONN 资源定义.
可接受的字符:

A-Z 0-9 $ @ #

当代码页为 IBM-037时,有效字符将按其呈现方式列出。 如果使用不同的 EBCDIC 代码页,请注意 变体角色 中记录的变体字符。

除非使用 CREATE 命令,否则您输入的任何小写字符都将转换为大写。

安装瞬时数据队列定义时,会将 REMOTESYSTEM 属性中输入的名称与系统标识进行比较。 如果名称不同,那么系统或区域是远程的。 如果名称相同,那么将使用 TYPE 属性中指定的值。 如果 TYPE 属性为空,那么安装将失败。

REWIND({LEAVE|REREAD}) (仅限分区外队列)
指定磁带数据集的处置。 可采用以下处置方法之一:
保留
当前磁带位于数据集的逻辑端。
当前磁带位于数据集的逻辑启动处。
SYSOUTCLASS({blank|A.Z|0..9|*}) (仅限分区外队列)
您可以将分区外队列分配给系统输出数据集(称为 SYSOUT),而不是分配给物理数据集。 使用 SYSOUTCLASS 属性来指定 SYSOUT 数据集的类。
空白
这是缺省类。
A.Z|0..9
单个字母或数字字符,代表在 z/OS® 系统上设置的输出类别, CICS 作业将在该系统上运行。
可接受的字符:

A-Z 0-9

除非使用 CREATE 命令,否则您输入的任何小写字符都将转换为大写。

*
SYSOUT 数据集的类别默认为 CICS 作业的 JOB 语句中 MSGCLASS 参数指定的类别。

可以使用 SYSOUTCLASS 作为 DSNAME 的替代方法。 与 DSNAME 一样,该队列可能已使用 JCL DD 语句预先分配给 SYSOUT。 JCL DD 语句将覆盖使用 TDQUEUE 资源定义进行的任何规范。

当 CICS 接收到打开分区外瞬时数据队列的请求时,将引用启动 JCL 以检查是否已创建数据集定义。 如果找不到名称,那么将使用 DSNAME 属性上指定的 44 个字符的名称来动态分配所需的数据集。

为 JCL 中的队列指定 SYSOUT 时,还可以指定类以外的属性 (例如,表单类型)。

注: 使用 RDO 指定 SYSOUT 数据集仅支持类参数。 如果需要其他参数,请在 JCL 中指定 SYSOUT 数据集。

有关 SYSOUT 及其相关类的详细信息,请参阅 z/OS MVS JCL 用户指南

TDQUEUE(名称)
指定瞬时数据队列的 1-to 4 字符名称。
可接受的字符:

A-Z a-z 0-9 $ @ #./ - _ % &?!:| " = ¬,; < >

当代码页为 IBM-037时,有效字符将按其呈现方式列出。 如果使用不同的 EBCDIC 代码页,请注意 变体角色 中记录的变体字符。

如果提供的名字少于四个字符,则将其左对齐,并使用最多四个字符的空白字符进行填充。

注:
  1. 如果在名称中使用逗号 (,) ,那么将无法使用这些命令,例如
    CEMT INQUIRE TDQUEUE(value1,value2)
    CEMT SET     TDQUEUE(value1,value2)
    其中逗号用作列表定界符。 有关使用资源标识列表的信息,请参阅 资源标识列表
  2. 如果使用 RACF®保护瞬时数据队列,请避免在名称中使用 %& 。 当在概要文件名称中使用这些字符时, RACF 命令会对这些字符指定特殊含义。 请参阅 瞬时数据安全性
TRANSID(事务) (仅限分区内队列)
指定要在达到触发器级别时自动启动的事务的名称。 事务以这种方式启动,以从队列中读取记录。 如果未指定 TRANSID 属性 (或者如果指定了 TRIGGERLEVEL (0)) ,那么必须使用其他方法来调度事务以从瞬时数据队列读取记录。

指定的事务不得驻留在远程 CICS 系统中。 如果执行此操作,那么事务启动将失败,并向控制台发出警告消息。

TRIGGERLEVEL({1|number}) (仅限分区内队列)
指定在自动启动任务以处理记录之前要累积的记录数。 (此数字称为触发器级别。)

如果指定 TRANSID 属性,那么 TRIGGERLEVEL 缺省为 1。 如果要禁用 ATI 处理,那么指定触发器级别为 0。 如果未指定事务标识,那么忽略触发器级别。

如果指定了 ATIFACILITY (TERMINAL) ,那么直到指定的终端可用后才会启动该任务。 如果指定了 ATIFACILITY (FILE) ,那么不需要终端即可启动任务。

如果在最大任务中存在非终端目标的存储空间不足或无空间条件,那么不会启动该任务。 在初始化的 1 和 2 阶段以及关闭的最后阶段也是如此。 当压力条件不再存在并且发生后续 TD WRITE 时,将启动该任务。

对于逻辑可恢复的瞬时数据队列,直到任务落实前,才会连接 ATI 任务。 这可能意味着在发生 ATI 之前远远超出触发器级别。

如果在两个触发级别为 1 的 ISC CICS 系统上将 z/OS Communications Server 终端定义为 CSTL 事务的目的地,当两个系统重复获取和释放终端以写入会话开始和会话结束报文时,可能会出现性能问题。

当 CICS 正在使用 CEMT 事务运行时,您可以更改触发器级别。 如果将触发器级别降低到等于 (或小于) 到目前为止累积的记录数的数字,那么将在成功将下一个记录放入队列时启动该任务。
1
只能累积一条记录。
数字
在 ATI 发生之前可以累积的记录数 (最多 32767 条)。
TYPE({EXTRA|内部|间接})
指定以下类型的瞬时数据队列:
EXTRA
CICS 区域外部的队列将分配给 CICS。
分区外队列用于:
  • 在 CICS 区域外部发送数据: 例如,由事务创建的用于由批处理程序处理的数据。
  • 从区域外部检索数据: 例如,从终端接收的数据作为事务的输入。

分区外数据是顺序数据,由 QSAM 管理。

INDIRECT
间接队列是不指向实际数据集,而是指向另一个队列的队列。 间接队列可以是分区外、分区内、远程,甚至是其他间接队列。

例如,可以将不同的符号名称 INDIRECTDEST 分别提供给多个不同的消息类型。 然后,可以将所有这些消息类型发送到同一物理队列 (INDIRECTDEST) 或不同的物理队列。

DFH$TDWT 样本程序演示如何使用间接队列将不同类别的消息发送到同一终端。 有关 DFH$TDWT 的编程信息,请参阅 使用瞬时数据写入终端程序 (DFH$TDWT)。 DFH$TDWT 样本定义在 CICS/ESA 4.1 Sample Applications Guide中提供。

如果 EXEC CICS WRITEQ TDEXEC CICS READQEXEC CICS DELETEQ 命令的 QUEUE 操作数指定了间接队列,那么访问权由最终目标队列的安全性设置确定。

INTRA
要临时存储的数据的队列。

分区内目标可以是终端,文件或其他系统。 由 VSAM 管理的单个数据集用于保存所有分区内队列的数据。

您可以指定用于处理记录的事务以及每个分区内队列的触发器级别。 触发器级别表示在启动指定事务之前允许累积的记录数。 有关触发器级别的更多信息,请参阅 TRIGGERLEVEL 属性的描述。

分区内队列可以定义为逻辑上可恢复,物理上可恢复或不可恢复。

将逻辑上可恢复的队列 (在单个事务故障或系统总故障之后) 恢复到它在最后完成的工作单元 (UOW) 结束时所处的状态。 (UOW 在任务开始时或在同步点开始,并在任务结束时或在同步点结束)。

物理上可恢复的队列将 (在系统总故障之后) 恢复到发生系统故障时的状态。

不能在 TDQUEUE 资源定义上指定 TYPE=REMOTE。 如果要定义远程瞬时数据队列,请将 TYPE 属性留空,并指定远程属性REMOTEL思, REMOTENAME 和 REMOTESYSTEM 的值。 或者,可以将远程属性包含为其他瞬时数据队列类型的资源定义的一部分。

TYPEFILE { 输入 | 输出 | 返回 }
指定要与队列关联的数据集的类型。
输入
输入数据集。
输出
输出数据集。
回退
要向后读取的输入数据集。
注: 这仅适用于已在磁带上定义的数据集。

分区外队列可以是输入或输出,但不能同时是两者。

有关 DCB 宏字段的更多信息,请参阅 z/OS DFSMS 数据集宏指令

USERID(userid) (仅限分区内队列)
指定您希望 CICS 在验证 TRANSID 字段中指定的触发器级别事务时用于安全性检查的用户标识。 用户标识的长度最多可以为 8 个字符。
可接受的字符:

A-Z 0-9 $ @ #

当代码页为 IBM-037时,有效字符将按其呈现方式列出。 如果使用不同的 EBCDIC 代码页,请注意 变体角色 中记录的变体字符。

除非使用 CREATE 命令,否则您输入的任何小写字符都将转换为大写。

仅当同时指定了 ATIFACILITY (FILE) 时,在 USERID 字段中输入的值才有效。

当安全性处于活动状态时,触发器级别事务将在指定用户标识的权限下运行。 此用户标识必须有权使用触发器级别事务所使用的所有资源。

如果从瞬时数据队列定义中省略用户标识,那么 CICS 将使用在 DFLTUSER 系统初始化参数上指定的 CICS 缺省用户标识。 当您安装包含用户标识的分区内定义时,将执行安全性检查。 如果安全性检查失败,那么不会安装该分区内队列的资源定义。

有关代理用户安全性的更多信息,请参阅 代理安全性

WAIT({YES|NO}) (仅限分区内队列)
指定修改了逻辑可恢复队列的不确定工作单元 (UOW) 是否应等待与其协调程序再同步以确定是落实还是回退更改。
UOW 不等待。 按照 TRANSACTION 资源定义上 ACTION 属性的指定,回退或提交对可恢复资源所作的任何更改。
UOW 将等待,等待时所需的任何操作由 WAITACTION 属性确定。

此属性覆盖 UOW 的事务定义上定义的 WAIT 属性。 有关 TDQUEUE 和 TRANSACTION 定义上不确定属性的交互的说明,请参阅 表 1

WAITACTION({REJECT|QUEUE}) (仅限分区内队列)
如果此队列的定义指定 WAIT (YES) ,那么指定 CICS 要对不确定工作单元 (UOW) 执行的操作。 可能的操作包括:
QUEUE
UOW 不确定且正在等待; UOW 对此队列持有的任何锁定都将保持活动状态,直到 UOW 的最终状态已知为止。 这意味着,任务已暂挂,而非正在接收 LOCKED 响应。 在知道 UOW 的最终状态时,提交或回退所作的所有更改。 在此之前,需要其中一个活动锁定的以下类型的任何其他请求都必须等待:
  • READQ (如果不确定的 UOW 已发出 READQ 或 DELETEQ 请求)。
  • WRITEQ (如果不确定的 UOW 已发出 WRITEQ 或 DELETEQ 请求)。
  • DELETEQ (如果不确定的 UOW 已发出 READQ , WRITEQ 或 DELETEQ 请求)。
拒绝
UOW 不确定且正在等待。 UOW 对该队列所做的任何锁定仍然有效,直到知道 UOW 的最终状态为止。 在知道最终状态时,提交或回退 UOW 所作的所有更改。 在此之前,需要一个保留锁定的任何后继请求都会被拒绝,并返回 LOCKED 响应。 WAITACTION=REJECT 使得出现 LOCKED 的情况与 QUEUE 使事务等待的情况完全相同。