【发布时间】:2021-11-21 18:44:43
【问题描述】:
我需要在通过 bpxbtach 调用 Unix 脚本的 JCL 步骤中设置超时。我做到了
//STEPX EXEC PGM=BPXBATCH, PARM='sh /x.sh',TIME=(,10)
但是,经过一段时间后,我意识到不包括队列中的时间。他们说“此运行时间仅指实际执行时间,不包括作业在 INPUT 或 INPUT HOLD 队列中花费的时间”https://supportline.microfocus.com/documentation/books/rd60/cbwjto.htm
那是 microfocus JCL,但我验证了这种行为在 IBM Z 上也是如此。
因此,即使我将超时设置为 10 秒,如果队列正在处理其他事情,该步骤也可能需要几分钟。我需要一个超时来终止这一步,不管它花了这么长时间的原因。我一直找不到我需要的东西。请帮忙。
【问题讨论】:
-
你为什么要这样做?根据定义,作业是批处理工作。如果您需要在 10 秒内完成某件事,则需要采取其他步骤。您还将工作步骤和工作混为一谈。我建议问一个描述你是什么的问题
-
我认为这是一个 'XY' 问题 - 当你真正需要解决问题 'Y' 时,你正在尝试解决问题 'X' 在大型机上的 30 多年中,我从未见过如果批处理作业在运行后 10 秒内未运行,则要求取消它。批处理作业在此程度上不依赖于时间。现在您可能需要在某个事件发生后的 10 秒内运行脚本,所以我会询问您的系统程序员是否有像 Ops/MVS、AF/Operator 或 IBM 的 System Automation 这样的自动化包。
-
10 秒,那行代码只是为了举例......