Tivoli Workload Scheduler [TWS]条件依赖 - 如何实现?

时间:2014-11-18 21:15:13

标签: tivoli workload-scheduler tivoli-work-scheduler

在尝试找出以下方案的解决方案后,我正在接触中小企业。 我有一个非常具体的要求:

1)假设我有一个名为SCH1的日程表,有3个作业JOB1,JOB2和JOB3,如:

Schedule S1
JOB1

JOB2
FOLLOWS JOB1

JOB3
FOLLOWS JOB2

END

2)JOB1正在调用shell脚本。 3)现在,如果JOB1 shell脚本返回代码0 - 它成功并执行JOB2和JOB3。 4)如果shell脚本返回的代码不是0,那么JOB1不应该异常终止;但应跳过所有其他工作JOB2和JOB3(或不运行完成);和时间表应该标记成功。

我在网上得到以下链接,这表明这应该是可能的。但是,当我参考作业/计划定义的语法时;我无法弄清楚应该怎么写。

在作业语法中,看起来下面可以做到这一点,但不太确定。

 [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

3 个答案:

答案 0 :(得分:1)

我想说这是不可能的。

使用RCCONDSUCC,您可以根据其返回代码微调作业的状态(SUCC或ABEND)。这仅仅意味着您不限于RC = 0 = SUCC或RC> 0 = ABEND。

使用RECOVERY,您可以指定仅在JOB处于ABEND时应采取的操作。

在这里,您要强制JOB到SUCC并指定RECOVERY ....

答案 1 :(得分:0)

要在条件依赖项的帮助下跳过Job2和Job3,Job1必须处于状态" E"。但是,您可以将Job4添加到仅在Job1中止时运行的应用程序(也使用CondDep定义)。此作业完成Job1(或整个应用程序)。 它有效 - 我在客户会议上展示了这个例子:-)

如果这些作业具有CondDep到Job1,Job1也可以完成并跳过作业Job2和Job3:Job1必须处于状态" C" AND Job1必须以RC<> 0结束。

答案 2 :(得分:0)

自9.3 FP1起,这可以通过内置conditional dependencies

实现

假设您希望JOB3在JOB2异常终止时等待,使用条件依赖关系可以像这样实现您的场景 enter image description here

 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
 END

JOB1定义了2 SUCCOUTPUTCOND:如果RC = 0则为GO;如果RC!= 0则为NOGO。 两者都是SUCCOUTPUTCOND,这意味着在两种情况下JOB1都将进入SUCC。

  • 如果JOB1以RC = 0结束,则GO条件为真且满足FOLLOWS JOB1 IF GO依赖关系,因此可以运行JOB2和JOB3(JOB3将等待JOB2,因为它还有FOLLOWS JOB2
  • 如果JOB1以不为0的RC结束,则GO为假且NOGO为真。由于至少在SUCCOUTPUTCOND为真,JOB1在SUCC中完成,但FOLLOWS JOB1 IF GO不满足,JOB2和JOB3将设置为SUPPR状态,不会运行。