Oracle Scheduler Chain Step - Succeeds and Fails at the same time?
700837Mar 19 2010 — edited Apr 21 2010Hi,
I have a chain program that executes a script :-
exec DBMS_SCHEDULER.CREATE_PROGRAM (
program_name => 'xxxx_execute_script'
,program_type => 'EXECUTABLE'
,program_action => '/home/xxx/run_remote_xxxx.sh'
,number_of_arguments => 0
,enabled => true
,comments => 'execute drms shell script'
);
The script does a remote execute to a another script on a different machine.
I have a chain step setup as :-
exec DBMS_SCHEDULER.DEFINE_CHAIN_STEP (
chain_name => 'xxx_drms_manual_load',
step_name => 'STEP30',
program_name => 'drms_execute_script');
I have chain rules :-
(execute the script)
exec DBMS_SCHEDULER.DEFINE_CHAIN_RULE (
chain_name => 'xxx_drms_manual_load'
,condition => 'STEP20 succeeded'
,action => 'START STEP30'
,rule_name => 'drms_rule_030'
,comments => 'start drms step30 - execute_script'
);
(chain rule for failed - executes a stored procedure to sends a warning email)
exec DBMS_SCHEDULER.DEFINE_CHAIN_RULE (
chain_name => 'jpl_drms_manual_load'
,condition => 'STEP30 failed'
,action => 'start step31'
,rule_name => 'drms_rule_035'
,comments => 'drms - sends unix script error email'
);
(chain rule for succeeded - executes a stored procedure to check for certain processing codes)
exec DBMS_SCHEDULER.DEFINE_CHAIN_RULE (
chain_name => 'jpl_drms_manual_load'
,condition => 'STEP30 succeeded'
,action => 'START STEP40'
,rule_name => 'drms_rule_050'
,comments => 'start drms step40 - check for errors'
);
Everything has been running fine until a couple of days ago.
The job chain now seems to run Step 31 (failed) AND step40 (successful) ! How can this be?
All job steps run according to the oracle job log (all_SCHEDULER_JOB_RUN_DETAILS) - (STEP31 does not appear in the log - even though it runs - we recieve a warning email)
There no non zero return codes for the job steps.
Is there a way to see the return code from the execution of the script (STEP30) to see what the return code is ??
Thanks in advance,