When you want to let an order wait until an order in another job chain has passed successfully a specific node, you can use the sync job. Here are some use cases:
- two or more job chains. In every job chain is one order. The order can proceed, when they are all on a specific node in their chain.
- Like 1. but now, you want to wait for more than one order.
- You have job chains A,B,C. C can start, when A or B are finished.
1. two or more job chains. One order in every job chain. The order can proceed, when they are all on a specific node in their chain.
- create a job "SynchroniseJobChains" named "sync" using the job wizard in JOE.
<job title="Synchronize Job Chains" order="yes">
<script language="java"
java_class="sos.scheduler.job.JobSchedulerSynchronizeJobChains"/>
</job>
- create a node before the node, you want to wait. Assign the just created job to this node
- create a node after the node, you want to wait for. Assign the just created job to this node
<job_chain>
<job_chain_node state="100"
job="jobsSample_1"
next_state="sync"
error_state="error"/>
<job_chain_node state="sync"
job="Sync"
next_state="200"
error_state="error"/>
<job_chain_node state="200"
job="jobsSample_3"
next_state="success"/>
<job_chain_node state="success"/>
<job_chain_node state="error"/>
</job_chain>
<job_chain>
<job_chain_node state="100"
job="jobsSample_2"
next_state="sync"
error_state="error"/>
<job_chain_node state="sync"
job="Sync"
next_state="success"
error_state="error"/>
<job_chain_node state="success"/>
<job_chain_node state="error"/>
</job_chain>
2. Like 1. but now, you want to wait for more than one order.
- Same steps as at 1.
- You can specify for each job chain, how many orders have to be at the sync point to set the node to GO. Note: If you want to specify it for different nodes, you can use parameter [job_chain];[state]_required_orders
<job title="Synchronize Job Chains" order="yes">
<params>
<param name="job_chain1_required_orders" value="3"/>
<param name="job_chain2_required_orders" value="1"/>
</params>
<script language="java"
java_class="sos.scheduler.job.JobSchedulerSynchronizeJobChains"/>
</job>
3. You have job chains A,B and C. C can start, when A or B are finished.
specify parameter minimumSyncHits=1.
<job title="Synchronize Job Chains" order="yes">
<params>
<param name="minimumSyncHits" value="1"/>
</params>
<script language="java"
java_class="sos.scheduler.job.JobSchedulerSynchronizeJobChains"/>
</job>