WAIT_MVS 调用

WAIT_MVS 请求在 MVS™ 事件控制块 (ECB) 或 MVS ECB 列表上等待。 例如,您可以发出 WAIT_MVS 以等待已为其发出 ATTACH 命令并提供了任务完成 ECB 的 MVS 任务完成。

当接收到 WAIT_MVS 请求时,分派器不会清除 ECB。 如果已发布任何 ECB ,那么控制权将立即返回给出口程序,响应为 "OK"。

单个欧洲央行不得成为上一次等待的对象。 如果接收到 WAIT_MVS 请求时已在等待任何 ECB ,那么将拒绝该请求。 响应代码为 "DSSR_INVALID" ,原因码为 "DSSR_ALREADY_WAITING"。

注: 必须始终使用 MVS POST 宏来发布 WAIT_MVS 请求中使用的 ECB。

WAIT_MVS

DFHDSSRX [CALL,]
      [CLEAR,]
      [IN,
      FUNCTION(WAIT_MVS),
      {ECB_ADDRESS(name4 | (Ra)) | ECB_LIST_ADDRESS(name4 | (Ra)),}
      PURGEABLE(YES|NO),
      [INTERVAL(name4 | (Rn)),]
      [RESOURCE_NAME(name16 | string | 'string'),]
      [RESOURCE_TYPE(name8 | string | 'string'),]]
      [TIME_UNIT(SECOND|MILLI_SECOND),]
      [WLM_WAIT_TYPE,]
      [OUT,
      RESPONSE(name1 | *),
      REASON(name1 | *)]

此命令是线程安全的。

ECB_ADDRESS (name4 | (Ra))
指定要等待的 ECB 的地址。
name4
包含 ECB 地址的位置的名称。
(Ra)
包含 ECB 地址的寄存器。
ECB_LIST_ADDRESS (name4 | (Ra))
指定要等待的 ECB 地址列表的地址。
name4
包含 ECB 地址的位置的名称,可能后跟更多 ECB 地址。 列表中的最后一个地址字将高位设置为 1。
(Ra)
指向先前描述的地址列表的寄存器。
INTERVAL (name4 | (Rn))
指定自动恢复任务的时间 (以秒或毫秒计) ,并将 RESPONSE 值指定为 "PURGED" 和 REASON 值指定为 "TIMED_OUT"。 在 INTERVAL 选项上使用的时间单位取决于 TIME_UNIT 选项的设置。
INTERVAL 值覆盖为事务指定的任何超时 (DTIMOUT) 值。
name4
4 字节区域的名称,解释为二进制全字
(Rn)
包含区间值 (二进制全字) 的寄存器。
可清除 (YES | NO)
指定代码是否可以处理由于清除而异常终止的请求。 有四种类型的清除,如 表 1中所示。 指定PUR性 (NO) 告知分派器:
  • 拒绝任何 PURGE 任务的尝试
  • 在此请求的持续时间内禁止死锁超时 (DTIMOUT) 工具 (如果适用于此任务)。
表 1. 暂挂调用-响应 (已清除)
推理 条件 可清除 (NO) 可清除 (YES)
任务已取消 PURGE 已取消 正常收益
FORCEPURGE 正常收益 正常收益
超时 DTIMOUT 已取消 正常收益
INTERVAL 正常收益 正常收益
注: FORCEPURGE 始终假定用户希望清除任务,因此会覆盖PUR可用 (NO) 选项。 如果用户设置了 INTERVAL ,那么这也会覆盖PUR可用 (NO) 选项。
RESOURCE_NAME (name16 | string | "string")
指定可用于记录和跟踪暂挂和恢复处理中涉及的资源的 16 个字符的字符串。 不能使用寄存器表示法来指定字符串的地址。
name16
存储 16 字节值的位置的名称。
字符串(string)
不包含空格的字符串; 如果长度不是 16 个字节,那么将使用空格进行扩展或根据需要进行截断。
"字符串"
用引号括起的字符串。 在括起的字符串中允许有空格。 如果要在程序中记录名称 (标签) ,请使用此表单。
注: CICS® 不使用 RESOURCE_NAME 信息,而是将其包含在跟踪条目中,并将其显示在相应的 CEMT 屏幕上,以帮助您查看正在执行的任务。 CICS 内部请求指定值,您应该使用不同的值来避免岐义。 CICS 内部请求值记录在 CICS 系统任务可以等待的资源中。
RESOURCE_TYPE (name8 | string | "string")
指定可用于记录和跟踪暂挂和恢复处理中涉及的资源的 8 字符字符串。 不能使用寄存器表示法来指定字符串的地址。
名称
存储 8 字节值的位置的名称。
字符串(string)
不包含空格的字符串; 如果该字符串的长度不是 8 字节,那么将使用空格进行扩展或根据需要进行截断。
"字符串"
用引号括起的字符串。 在括起的字符串中允许有空格。 如果要在程序中记录名称 (标签) ,请使用此表单。
注: CICS 不使用 RESOURCE_TYPE 信息,但将其包含在跟踪条目中,并将其显示在相应的 CEMT 屏幕上,以帮助您查看正在执行的任务。 CICS 内部请求指定值,您应该使用不同的值来避免岐义。 CICS 内部请求值记录在 CICS 系统任务可以等待的资源中。
TIME_UNIT (SECOND | 毫秒)
指定在 INTERVAL 选项上使用的时间单位。
SECOND
INTERVAL 选项指定超时前的秒数。
毫秒
INTERVAL 选项指定超时前的毫秒数。
WLM_WAIT_TYPE (name1)
在 1 字节的位置中,指定暂挂任务的原因。 这指示任务对 MVS 工作负载管理器的等待状态的性质。

等待类型的等同值如下所示:

CMDRESP
正在等待命令响应。
对话
正在等待对话。
德兹里布
正在等待分布式请求。
空闲
充当工作管理器的 CICS 任务没有允许在监视环境中提供服务的工作请求。 例如,当没有要执行的日志记录 I/O 操作时暂挂自身的日志记录代码。
IO
正在等待 I/O 操作或不确定的 I/O 相关操作 (锁定,缓冲区,字符串等)。
LOCK
正在等待锁定。
MISC
正在等待未识别的资源。 这是在暂挂任务且未指定 WLM_WAIT_TYPE 参数时为等待提供的缺省原因。
其他产品
等待另一个产品完成其功能; 例如,当工作负载已传递到 DB2®时。
SESS_LOCALMVS
正在等待在运行此 CICS 区域的 MVS 映像中建立会话。
SESS_NETWORK
正在网络中其他位置 (即,不在此 MVS 映像上) 等待建立会话。
SESS_SYSPLEX
正在等待在综合系统中的某个位置 (即,不在此 MVS 映像上) 建立会话。
TIMER
等待计时器超时 (例如,使其自身处于休眠状态的任务)。

如果您正在 MVS 目标方式工作负载管理环境中运行 CICS (即,您正在使用面向目标的性能管理) ,那么建议您在 WLM_WAIT_TYPE 参数上指定暂挂任务的原因。

表 2。 WAIT_MVS 的 RESPONSE 和 REASON 值
RESPONSE 推理
确定
EXCEPTION
DISASTER
INVALID
KERNERROR
PURGED 任务已取消
超时
注:
  1. 有关更多详细信息,请参阅 进行 XPI 调用中对 RESPONSE 和 REASON 的说明。
  2. 如果 INTERVAL 到期,或者如果死锁超时时间间隔到期,那么将返回 TIMED_OUT。
  3. TASK_CANCEL 表示该任务已被操作员操作或应用程序命令取消。