在尝试找出以下方案的解决方案后,我正在与中小企业联系。我有一个非常具体的要求:
1)假设我有一个名为SCH1的调度,它有3个作业JOB1、JOB2和JOB3,如下所示:
Schedule S1
JOB1
JOB2
FOLLOWS JOB1
JOB3
FOLLOWS JOB2
END2) JOB1正在调用外壳脚本。3)现在,如果JOB1外壳脚本返回代码0-成功,则执行JOB2和JOB3。4)如果shell脚本返回的代码不是0,JOB1仍然不应异常终止;但应跳过所有其他作业JOB2和JOB3 (或在不运行的情况下完成);计划应标记为成功。
我在网上得到了下面的链接,这表明这应该是可能的。但是,当我提到Job/Schedule定义的语法时,我不知道应该如何编写它。
在作业语法中,下面看起来可以做到这一点,但不是很确定。
[rccondsucc "Success Condition"]
[recovery
{stop | continue | rerun}
[after [workstation#]jobname]
[abendprompt “text”] ]条件依赖:
http://www-01.ibm.com/support/knowledgecenter/SSGSPN_9.1.0/com.ibm.tivoli.itws.doc_9.1/zos/src_man/eqqr1conddepevalex.htm?lang=en
作业语法:
http://www-01.ibm.com/support/knowledgecenter/SSGSPN_9.1.0/com.ibm.tivoli.itws.doc_9.1/distr/src_ref/awsrgjobdefn.htm?lang=en
计划语法:
http://www-01.ibm.com/support/knowledgecenter/SSGSPN_9.1.0/com.ibm.tivoli.itws.doc_9.1/distr/src_ref/awsrgjsdefn.htm?lang=en
发布于 2014-11-29 07:59:00
我会说这是不可能的。
使用RCCONDSUCC,您可以根据作业的返回代码微调作业的状态(SUCC或ABEND)。这只意味着你不受RC =0= SUCC或RC >0= ABEND的限制。
使用RECOVERY,您可以指定仅当作业处于ABEND状态时才应执行的操作。
在这里,您希望强制作业成功并指定恢复...
发布于 2016-04-28 00:04:13
要在条件依赖项的帮助下跳过Job2和Job3,Job1必须处于"E“状态。但是您可以向只有在Job1中止时才运行的应用程序添加Job4 (也可以用CondDep定义)。此作业完成Job1 (或整个应用程序)。它是有效的--我在客户会议上演示了这个例子:-)
如果作业Job2和Job3具有CondDep to Job1: Job1必须处于"C“状态,Job1必须以RC<>0结束,则这些作业也可能完成并跳过这些作业。
发布于 2017-03-01 16:56:29
从9.3 FP1开始,可以使用内置的conditional dependencies实现这一点
假设您想让JOB3等待JOB2放弃,使用条件依赖关系,您的场景可以像这样实现

SCHEDULE SCH1
:
JOB1
DOCOMMAND "myscript"
STREAMLOGON twsuser
SUCCOUTPUTCOND GO "RC=0"
SUCCOUTPUTCOND NOGO "RC!=0"
JOB2
FOLLOWS JOB1 IF GO
JOB3
FOLLOWS JOB2
FOLLOWS JOB1 IF GO
ENDJOB1定义了2个SUCCOUTPUTCOND:如果RC=0,则GO;如果RC!=0,则为NOGO。两者都是SUCCOUTPUTCOND,这意味着JOB1在这两种情况下都会成功。
FOLLOWS JOB1 IF GO依赖关系,因此可以运行JOB2和JOB3 (JOB3将等待JOB2,因为它还有一个RC不为0的JOB1结束,GO为false,NOGO为true。由于至少在SUCCOUTPUTCOND为true,JOB1在SUCC中完成,但FOLLOWS JOB1 IF GO不满足,JOB2和JOB3将被设置为SUPPR状态,不会运行。https://stackoverflow.com/questions/27004185
复制相似问题