POST
请求在指定的时间用完时收到通知。
动态事务路由的注意事项: 如果稍后由另一个任务取消,那么使用 POST 可能会创建会对动态事务路由的使用产生负面影响的事务间亲缘关系。 有关事务亲缘关系的更多信息,请参阅 亲缘关系 。
描述
POST 请求通知指定的时间已到期。 作为对该命令的响应, CICS ® 使计时器事件控制区域可用于测试。 此 4 字节控制区域初始化为二进制零,并且 SET 选项中指定的指针引用设置为其地址。
- 通过按时间间隔检查计时器事件控制区域。 您必须为 CICS 提供发布该区域的机会; 即,该任务必须在测试该区域之前放弃对 CICS 的控制。 通常,由于发出了其他命令而满足此条件; 如果任务正在执行长时间的内部功能,那么可以通过发出 SUSPEND 命令来强制放弃控制。
- 通过 WAIT EVENT 或 WAIT EXTERNAL 命令暂挂任务活动,直到发布 timer-event 控制区域。 此操作类似于发出 DELAY 命令,但是,使用 POST 和 WAIT EVENT 或 WAIT EXTERNAL 命令序列,您可以在发出 POST 命令后执行一些处理; DELAY 命令一次暂挂任务活动。 任何其他任务都不应尝试等待 POST 命令设置的事件。
- 通过使用 WAITCICS。
- 后续 POST 命令
- POST 的 CANCEL
- 本地 START 命令
指定远程系统上事务的 START 命令不会影响 POST 命令设置的事件,除非在将 LOCALQ 设置为 YES 的情况下定义该事务并执行本地排队。
- 后续 DELAY 命令
- POST 时间到期。
- 另一个事务使用 POST REQID 发出 CANCEL。
由于各种原因,可以释放计时器-事件控制区域。 如果发生这种情况,那么对 POST 命令设置的事件发出 WAIT 命令的任何其他任务的结果都是不可预测的。
但是,如果其他任务有权访问与 POST 命令关联的 REQID ,那么可以取消该事件。 (请参阅 CANCEL 命令和 REQID 选项的描述。)
任务在任何给定时间只能有一个 POST 命令处于活动状态。 任何 DELAY 或 POST 命令或命名本地系统中事务的 START 命令都将取代该任务先前发出的 POST 命令。
缺省值为 INTERVAL ($TAG1) ,但对于 C ,缺省值为 AFTER HOURS (0) MINUTES (0) SECONDS (0)。
选项
- AFTER
- 指定要耗用的时间间隔。有两种方法可以输入 AFTER 和 AT 下的时间。
- 至少两个 HOURS (0-99) , MINUTES (0-59) 和 SECONDS (0-59) 的组合。 HOURS (1) SECONDS (3) 表示 1 小时 3 秒 (分钟缺省为零)。
- 作为 HOURS (0-99) , MINUTES (0-5999) 或 SECONDS (0-359 999) 之一。 HOURS (1) 表示 1 小时。 MINUTES (62) 表示 1 小时 2 分钟。 SECONDS (3723) 表示 1 小时, 2 分钟和 3 秒。
- AT
- 指定到期时间。 有关输入时间的方法,请参阅 AFTER 选项。
- HOURS (data-value)
- 指定 0-99 范围内的全字二进制值。 这是 AFTER 和 AT 选项的子选项。 有关其用途和含义,请参阅 AFTER 选项。
- INTERVAL (hhmmss)
- 指定从发出 POST 命令的时间起经过的时间间隔。 mm 和 ss 在 0-59 范围内。 当执行命令以计算到期时间时, CICS 会将指定的时间添加到当前时钟时间。
此选项用于指定应该何时发布计时器事件控制区域。
使用 C 语言时,建议您使用 AFTER/AT HOURS , MINUTES 和 SECONDS 选项,因为 C 不提供压缩十进制数据类型。 您可以使用 INTERVAL ,但如果指定的值 不是 整数常量,那么应用程序将负责确保传递给 CICS 的值采用压缩十进制格式。
- MINUTES (data-value)
- 指定 0-59 范围内的全字二进制值 (当同时指定了 HOURS 或 SECONDS 时) 或 $TAG1-5999 (当 MINUTES 是唯一指定的选项时)。 这是 AFTER 和 AT 选项的子选项。 有关其用途和含义,请参阅 AFTER 选项。
- REQID (名称)
- 指定应该唯一的名称 (1-8 个字符) 以标识 POST 请求。 使用此选项来指定应用程序定义的名称是使另一个事务能够取消 POST 请求的一种方法。
如果未指定您自己的 REQID ,那么 CICS 会在 EXEC 接口块的 EIBREQID 字段中为您生成唯一的请求标识。 这与您自己的 REQID 一样,可以由另一个事务用于取消 POST 请求。
要启用其他任务以取消未到期的 POST 请求,必须使请求标识动态可用。 例如,将其存储在可能要取消 POST 请求的其他应用程序已知其名称的 TS 队列中,是将请求标识传递给其他事务的一种方法。
- SECONDS (data-value)
- 指定 0-59 范围内的全字二进制值 (当同时指定 HOURS 或 MINUTES 时) 或 $TAG1-359 999 (当 SECONDS 是唯一指定的选项时)。 这是 AFTER 和 AT 选项的子选项。 有关其用途和含义,请参阅 AFTER 选项。
- SET (ptr-ref)
- 指定要设置为 CICS 生成的 4-byte timer-event 控制区地址的指针引用。 此区域初始化为二进制零; 在指定时间到期时,第一个字节设置为 X'40 ',第三个字节设置为 X'80'。
计时器事件控制区域始终位于共享动态存储器 (SDSA) 中的 16MB 线以下。
- 时间 (hhmmss)
- 指定应发生计时器事件控制区域的发布的时间。
使用 C 语言时,建议您使用 AFTER/AT HOURS , MINUTES 和 SECONDS 选项,因为 C 不提供压缩十进制数据类型。 您可以使用 TIME ,但如果指定的值 不是 整数常量,那么应用程序负责确保传递给 CICS 的值采用压缩十进制格式。 请参阅 时间间隔控制中有关到期时间的部分。
条件
- 31 已到期
- 如果发出命令时指定的时间已到期,那么将发生此情况。
缺省操作: 忽略条件。
- 16 INVREQ
- RESP2 值:
- 4
- 小时数超出范围。
- 5
- 分钟数超出范围。
- 6
- 秒超出范围。
在下列任何情况下也会发生 (未设置RESP2 ):- POST 命令对于 CICS 处理无效。
缺省操作: 异常终止任务。
示例
EXEC CICS POST
INTERVAL(30)
REQID('RBL3D')
SET(PREF)
EXEC CICS POST
TIME(PACKTIME)
SET(PREF)
