SimonSellick
Programmer
I'm encountering strange, but reproducible behaviour with a job comprising a chain with a number of steps.
There are 5 steps in the chain, and they run sequentially. The last step is also intended to tidy up if there's a problem with an earlier step.
The rules look like this:
When the steps all succeed, there's no problem - everything tidies up as expected.
When a step fails, the remaining intermediate steps don't start (as expected) and step 5 runs and ends the chain - but it doesn't finish the job.
The user_scheduler_running_chains shows the failed, succeeded and not_started steps as though the chain is still running, but if I try to change the status of the unstarted steps with the proc alter_running_chain, it complains that the job isn't running.
The log view user_scheduler_job_run_details shows the failed and succeeded steps, but doesn't show the job that called the chain, so this appears to be where the hold-up is.
If I then try to run the job again, the run_job procedure returns normally, but the job doesn't run; however, the mess left behind by the previous failed run gets tidied up, and a subsequent run will now work (unless it fails again of course).
If anyone has run into this or has advice about how better to build the chain, I'd be grateful.
TIA
Simon.
There are 5 steps in the chain, and they run sequentially. The last step is also intended to tidy up if there's a problem with an earlier step.
The rules look like this:
Code:
no condition action
1 - start step 1
2 step 1 succeeded start step 2
3 step 2 succeeded start step 3
4 step 3 succeeded start step 4
5 step 4 completed
or step 1 failed
or step 2 failed
or step 3 failed start step 5
6 step 5 completed end
When a step fails, the remaining intermediate steps don't start (as expected) and step 5 runs and ends the chain - but it doesn't finish the job.
The user_scheduler_running_chains shows the failed, succeeded and not_started steps as though the chain is still running, but if I try to change the status of the unstarted steps with the proc alter_running_chain, it complains that the job isn't running.
The log view user_scheduler_job_run_details shows the failed and succeeded steps, but doesn't show the job that called the chain, so this appears to be where the hold-up is.
If I then try to run the job again, the run_job procedure returns normally, but the job doesn't run; however, the mess left behind by the previous failed run gets tidied up, and a subsequent run will now work (unless it fails again of course).
If anyone has run into this or has advice about how better to build the chain, I'd be grateful.
TIA
Simon.