Page History
...
- A number of jobs are executed in sequence.
- If a specific job fails one or more jobs fail with exit code 1 then it the jobs should be repeated for a number of times. For any other non-zero exit codes the order should be put to a failed state and should wait for user intervention, for example to resume or to cancel the failed order.
Workflow
The below workflow implements the use case from the The implementation makes use of the following instructions:
Workflow
...
Download: retry-on-return-code.workflow.json
...
- This workflow implements
- an outer Retry Block to repeat execution.,
- an inner Try / Catch Block to handle specific exit codes of the job,
- an If Instruction to decide about the handling of specific return codes.
Try Block
A Try Block includes any number of jobs or instructions. If one of them fails then processing will be repeated from the beginning of the block.
Explanation:
- After a first job
job1
thejob2
should be restarted for a number of times if it fails with return code 1. - The JS7 - Retry Instruction manages the retry capability and the intervals.
- The properties of the Retry Instruction include to specify a common delay for any retries or to use individual delays per retry.
- The JS7 - Try / Catch Instruction
- executes the job any number of instructions and jobs within the Try Block.
- Should the job jobs complete successfully then processing will continue after the Catch Block.
- Should the job jobs fail then it will enter the instructions and jobs of the Catch Block will be executed.
- executes the job any number of instructions and jobs within the Try Block.
Catch Block
The Catch Block is executed in case of failed instructions or jobs inside a Try Block.
The solution makes use of an JS7 - If Instruction to apply different types of error handling depending on the return code reported by the failed job.
If Instruction
Explanation:
- Within the Catch Block the JS7 - If Instruction is used to check the return code value which gives two options:
- if the return code value is 1 then the left branch (true) of the If
- Instruction is used,
- for any other return code values the right branch (false) is used.
- Subsequently we find two occurrences of a JS7 - Fail Instruction.
...
- The left Fail Instruction fails the order with a return code value 1.
- In addition, a message can be added that becomes visible with the JOC Cockpit GUI for the failed order.
- As a consequence the failed order is immediately picked up by the outer Retry Instruction that will repeat execution of
job1
having applied the indicated delay.
Right Fail
Explanation:
- The right Fail Instruction fails the order with a return code value 2.
- In addition, a message can be added that becomes visible with the JOC Cockpit GUI for the failed order.
- The
uncatchable
checkbox uncatchable is used to indicate that the failed order cannot be picked by the outer Retry Instruction and therefore . Instead, the order will remain with the its current position in a failed state and waits for user intervention.
Overview
Content Tools