What is the difference between OPTIONS INHERIT and OPTIONS NOINHERIT?

Document ID : KB000055437
Last Modified Date : 14/02/2018
Show Technical Document Details

In an ESP Application there is the ability to "inherit" dependencies dynamically. For example, lets assume I have the following job-flow: A => B => C (where jobs A and C run Daily but job B runs only on Friday)

Using OPTIONS INHERIT (which is the default), I could represent my Application in the following manner:

    JOB A 
        RUN DAILY 
        RELEASE B 
    ENDJOB
    JOB B 
        RUN FRIDAY 
        RELEASE C 
    ENDJOB 
    JOB C 
        RUN DAILY 
    ENDJOB 

What this means, is that on Friday, when all 3 jobs are scheduled, job A will run followed by job B and then job C. However, on a day that is NOT Friday, when only jobs A and C are scheduled, job A will run, followed by C even though there is no direct dependency between these 2 jobs.

This is possible because job C dynamically INHERITS the relationship that its predecessor, job B has with job A. The effect is that job C has an implicit relationship with job A and this generally results in a reduction in the number of statements required in an Application.

Using the OPTIONS NOINHERIT, my Application might look like:

    JOB A 
        RUN DAILY 
        RELEASE (B, C) 
    ENDJOB 
    JOB B 
        RUN FRIDAY 
        RELEASE (C) 
    ENDJOB 
    JOB C 
        RUN DAILY 
    ENDJOB 

In this example, note that job A has built an explicit dependency via the RELEASE statement to all of its successor jobs (B and C in this case). So on a day that is NOT Friday, job B is not scheduled and job A will have a "hard" release for job C.

This Frequently Asked Question applies to all supported releases of ESP Workload Manager.