DEQ

安排任务对资源的使用(出队)。

DEQ

读取语法图跳过可视语法图DEQRESOURCE( data-area)LENGTH( data-value)UOWMAXLIFETIME( CVDA)TASK

条件: INVREQ 和 LENGERR

如果此命令定义为 LOCAL ,那么它是线程安全的。 如果它定义为 GLOBAL ,那么它是非线程安全的。

动态事务路由的注意事项: 使用此命令可能会创建对动态事务路由的使用产生负面影响的事务间亲缘关系,除非资源中指定的名称与已安装的具有综合系统范围的 ENQMODEL 资源定义中指定的名称匹配。 有关事务亲缘关系的更多信息,请参阅 亲缘关系

描述

DEQ 导致释放当前由该任务排队的资源以供其他任务使用。

如果任务在资源上排队,但未从该资源中出队,那么 CICS® 会在同步点处理期间或任务终止时自动释放该资源。 此命令的上下文中的资源是由内部标准建立的 1-255 字节的任何字符串,用于防止任务之间的操作冲突或导致程序中的单线程。

发出 DEQ 命令时,要从其中出队的资源必须由对该资源进行排队时使用的方法标识。 如果没有为资源发出入队,那么将忽略出队。

如果一个任务对一个资源发出了多个 ENQ 命令,那么该资源将由该任务拥有,直到该任务发出匹配数量的 DEQ 命令为止。

当针对名称与已安装的 ENQMODEL 资源定义相匹配的资源发出 EXEC CICS DEQ (或 ENQ) 命令时, CICS 会检查 ENQSCOPE 属性的值以确定作用域是本地的还是系统的。 如果 ENQSCOPE 为非空白,那么 CICS 会将 ENQ 或 DEQ 视为系统范围的,并将队列名称和资源名称传递到 z/OS® 全局资源序列化以管理入队。 如果将 ENQSCOPE 属性留空 (缺省值) ,那么 CICS 会将 DEQ 视为发出 CICS 区域的本地 DEQ。 如果没有与资源名称匹配的 ENQMODEL ,那么 DEQ 命令的作用域为本地。 有关 ENQMODEL 资源的更多信息,请参阅 ENQMODEL 资源

选项

LENGTH (data-value)
指定要从中出队的资源具有数据值给定的长度。 数据值是 1 到 255 范围内的半字二进制值。 如果您指定的值超出此范围,那么将出现 LENGERR 条件。 如果在 ENQ 命令中指定了 LENGTH 选项,那么还必须在该资源的 DEQ 命令中指定 LENGTH 选项,并且这些选项的值必须相同。
MAXLIFETIME (cvda)
指定要释放的 ENQ 的持续时间。 CVDA 值包括:
UOW
已通过工作单元的持续时间获取入队。 这是缺省值。
注: 为了与先前发行版的 CICS兼容,还支持 CVDA 值 LUW。
TASK
ENQ 是在任务持续时间内获取的。
资源 (数据区)
指定其地址表示要从其出队的资源的区域,或指定包含该资源的变量 (例如,员工名称)。 在后一种情况下,必须使用 LENGTH 选项。

条件

16 INVREQ
RESP2 值:
2
MAXLIFETIME 选项是使用不正确的 CVDA 设置的。

缺省操作: 异常终止任务。

22 LENGERR
RESP2 值:
1
您为 LENGTH 选项指定的值超出范围 1 到 255。

缺省操作: 异常终止任务。

示例

以下示例显示如何从资源中出队:
EXEC CICS DEQ
     RESOURCE(RESNAME)
 
EXEC CICS DEQ
     RESOURCE(SOCSECNO)
     LENGTH(9)