SET TASK

清除任务或更改其优先级。

SET TASK

读取语法图跳过可视语法图 SET TASK ( data-value ) PRIORITY(data-value)PURGETYPE(CVDA)FORCEPURGEKILLPURGE

条件: INVREQ , NORMAL , NOTAUTH 和 TASKIDERR

此命令是线程安全的。

描述

使用 SET TASK 命令来清除任务 (异常终止该任务) 或更改其优先级。 但是,并非所有任务都可以使用此命令进行更改; 特别是,对于系统操作至关重要的 CICS®创建的任务是不合格的。

有关使用 CVDA 的更多信息,请参阅 CICS-value 数据区 (CVDA)

有关 Java™ 中的任务如何响应 PURGE 请求的重要信息,请参阅 清除 Java 任务

选项

PRIORITY (data-value)
指定作为全字二进制值的任务所需的优先级。 该值必须在 0-255 范围内。
PURGETYPE (cvda)
指定 CICS 将清除该任务,并指示执行此操作的条件。

在错误的时间清除任务可能会导致数据完整性丢失,或者在某些情况下会导致 CICS 异常终止。 CICS 始终会延迟清除,直到任务达到系统本身似乎没有风险的状态为止。 但是,您可以指定 CICS 是否也等待直到确保数据完整性。

清除或强制清除任务时,如果 CICS 检测到该任务具有当前在 Db2中处于活动状态的 Db2® 线程,那么 CICS 会在继续清除 CICS 任务之前发出 Db2 取消线程请求。 这将确保清除不会导致 Db2 出现问题,并确保安全地回退 Db2 更新。 如果该任务具有 Db2 线程,但它当前在 Db2中未处于活动状态,那么不需要取消线程。 当 CICS 由于清除任务而回退工作单元时,会正常使用 Db2 线程来回退 Db2 更新。 此功能需要 DB2® V11 或更高版本上的 APAR PI92893 。

如果 CICS 接受清除请求,那么它会向 SET TASK返回 NORMAL 响应。 您可以通过检查 RESP2 值来确定是否已延迟执行。 如果 RESP2 为零,那么已完成清除; 如果 RESP2 为 13 ,那么已延迟清除。 CVDA 值如下:
FORCEPURGE
该任务只要与系统完整性一致,且不考虑数据完整性,就会被终止。
注: CICS 无法始终确定强制清除是否安全; 可以在指定 FORCEPURGE 时异常终止系统。
KILL
将终止该任务。 不保证系统和数据完整性。 KILL 选项可扩展 PURGE 和 FORCEPURGE 选项的功能。 只有在已经尝试对任务执行 PURGE 或 FORCEPURGE 操作之后,才使用此命令。 KILL 选项不保证任何类型的完整性,但在某些情况下,它允许用户释放停滞的区域,从而使该区域能够继续处理。 在某些情况下,例如,如果在回退处理过程中终止了任务,CICS 会异常终止。
PURGE
只要可以维护系统和数据完整性,就会立即终止该任务。
注: 如果正在执行的 TRANSACTION 的定义指定了 SPURGE=NO ,那么无法清除具有此 CVDA 值的任务。
TASK (data-value)
指定要更改的任务的 4 字节压缩十进制序号。

条件

INVREQ
RESP2 值:
3
PURGETYPE 具有无效的 CVDA 值。
4
PRIORITY 不在 0-255 范围内。
5
该任务未处于有效的清除状态。 可以应用以下任何一项:
  • 目标事务是使用 SPURGE = NO 定义的
  • 目标事务是 CICS 创建的任务 (即,它是系统任务)
  • 已调度目标事务进行延迟清除 (即,先前的 PURGE 导致 Resp2=13)
  • 目标事务正在终止
  • 目标事务未暂挂或正在等待。
6
先前未尝试阻止此任务。
NORMAL
RESP2 值:
13
该任务未处于有效的清除状态。 目标事务处于事务初始化或不允许立即执行清除的分派器状态。 如果目标事务正在事务初始化中,那么会将其标记为延迟异常结束。 设置了一个标志,在连接处理结束时,事务将以 AKC3异常结束。 如果目标事务处于允许清除的分派器状态,那么将延迟清除,直到分派器状态更改为允许清除的状态或为延迟异常结束处理程序提供控制为止。
NOTAUTH
RESP2 值:
100
与发出任务关联的用户无权使用此命令。
TASKIDERR
RESP2 值:
1
找不到该任务。
2
该任务受 CICS 保护,不适合使用此命令进行修改。