This example has three different chains :

  • Chain I
  • Chain II
  • Chain III

Note:(Chains are not nested)

Jobs:

  • Chain I (Job1,Job2,Job3)
  • Chain II (Job4,Job5,Job6)
  • Chain III(Job7,Job8,Job9)

Order of Execution should be

On completion of Job1,

  1. Job2-Job3-Job4 should start in parallel.
  2. Job5-Job7 should start after the completion of Job4.
  3. Job6 should start after the completion of Job5 and all the jobs in Chain I.
  4. Job8 should start after the completion of Job7 and all the jobs in Chain II.
  5. Job9 should start after the completion of Job8.

How it works

  1. Job2-Job3-Job4 should start in parallel: Is done by splitter job in job chain1 and a command on exit for job1
  2. Job5-Job7 should start after the completion of Job4: Is done by the sequence of the job chain2 and a command on exit for job4
  3. Job6 should start after the completion of Job5 and all the jobs in Chain I: Is done by sync job Sync_3
  4. Job8 should start after the completion of Job7 and all the jobs in Chain II: Is done by sync job Sync_2
  5. Job9 should start after the completion of Job8: Is done by the the sequence of the job chain3

You can download the source for this example from here.