所以我定义了以下3个工作......
/* ----------------- JOB_A ----------------- */
insert_job: JOB_A job_type: CMD
command: ${BatchScripts}/JOB_A.ksh
machine: xyz
owner: abc@xyz
permission: mx
date_conditions: 1
run_calendar: 13BUSDAY
start_times: "00:10"
std_out_file: /autotmp/JOB_A.std
std_err_file: /autotmp/JOB_A.err
alarm_if_fail: 1
profile: /export/home/abc/.profile_autosys
/* ----------------- JOB_B ----------------- */
insert_job: JOB_B job_type: CMD
command: ${BatchScripts}/JOB_B.ksh
machine: xyz
owner: abc@xyz
permission: mx
date_conditions: 1
run_calendar: 13BUSDAY
start_times: "00:15"
condition: s(JOB_A)
std_out_file: /autotmp/JOB_B.std
std_err_file: /autotmp/JOB_B.err
alarm_if_fail: 1
profile: /export/home/abc/.profile_autosys
/* ----------------- JOB_C ----------------- */
insert_job: JOB_C job_type: CMD
command: ${BatchScripts}/JOB_C.ksh
machine: xyz
owner: abc@xyz
permission: mx
date_conditions: 1
run_calendar: 13BUSDAY
start_times: "00:45"
condition: s(JOB_B)
std_out_file: /autotmp/JOB_C.std
std_err_file: /autotmp/JOB_C.err
alarm_if_fail: 1
profile: /export/home/abc/.profile_autosys
他们跑,并检查他们的状态,我看到了。
Job Name Last Start Last End ST Run/Ntry Pri/Xit
___________________ ____________________ ____________________ __ ________ _______
JOB_A 05/18/2016 00:10:03 05/18/2016 00:46:22 SU 76659457/1 0
Job Name Last Start Last End ST Run/Ntry Pri/Xit
___________________ ____________________ ____________________ __ ________ _______
JOB_B 05/18/2016 00:46:24 05/18/2016 00:48:19 SU 76660708/1 0
Job Name Last Start Last End ST Run/Ntry Pri/Xit
___________________ ____________________ ____________________ __ ________ _______
JOB_C 05/18/2016 00:45:03 05/18/2016 00:45:07 SU 76660477/1 0
现在,我们遇到了JOB_C的问题..它没有运行"正确" ......我们设法追溯到它早于它应该运行的事实。 换句话说,正如您在JOB_C的START / END时间所看到的那样,它在JOB_B开始之前就已经开始(并且已经完成)。
我对此感到困惑,因为我们在JOB_C上有条件(#B;)(JOB_B)" ......
可能导致此行为的原因是什么? JOB_B像它应该有的那样等待JOB_A,然后运行正常,但JOB_C似乎有点“不耐烦”#34;。
这种情况发生在几个晚上,但似乎并不是每晚都会发生(也许3个中有1个以上述方式失败)。
我唯一猜测的是,因为JOB_B没有"#34;开始"但是@:45分钟......它从之前的运行中看到了SU?
但是,这没有意义,因为JOB_B设置为启动@:15 ..它不应该首先更改为AC状态吗?然后根据条件等待JOB_A
[编辑] 版本是: CA Workload Automation代理
用于LINUX(Intel)32位
版本R11.3,Service Pack 2,维护级别0,Build 508 [/编辑]
答案 0 :(得分:1)
你是正确的,因为工作C提前开始,因为在00:45工作B仍然处于其上一次运行的SU状态。作业B等待作业A,因为当作业B的运行时间在00:15触发时,作业A的状态为RU。
作业B未更改为AC状态,因为它不在激活它的框内。
我的建议是将作业A,B和C放在一个计划在00:10开始的框中,然后删除作业A的start_times。这应该导致作业A立即在00:10启动,作业B和C将更改为AC状态并防止遇到您遇到的问题。