Dependencies
Controlling processing using dependencies
When defining job streams and managing the workload in the plan, you can control process flow using dependencies.
You can specify the following types of dependencies:
- Dependencies in a distributed environment:
- You can have dependencies between jobs, between job streams, or
between jobs and job streams. They can be:
- Internal dependencies
- These are dependencies established between jobs belonging to the same job stream.
- External dependencies
- These are dependencies between job streams,
between job streams and jobs belonging to other job streams, or between
jobs belonging to different job streams. The following resolution
criteria are used to satisfy these dependencies:
- Closest preceding
- The closest preceding in time before the instance that includes the dependency.
- Same scheduled date
- The instance planned to run on the same day.
- Within a relative interval
- The closest preceding instance within the relative time interval you chose, or, if none is found, the closest following instance within the relative time interval you chose.
- Within an absolute interval
- The closest preceding instance within an absolute time interval you chose, or, if none is found, the closest following instance within the absolute time interval you chose.
Regardless of the used matching criteria, if multiple instances of potential predecessor job streams exist in the specified time interval, the rule used by the product to identify the correct predecessor instance is the following:- IBM Workload Scheduler searches for the closest instance that precedes the depending job or job stream start time. If such an instance exists, this is the predecessor instance.
- If there is no preceding instance, IBM Workload Scheduler considers the correct predecessor instance as the closest instance that starts after the depending job or job stream start time.
- Internetwork dependencies
- These are dependencies on jobs or job streams running in another IBM Workload Scheduler network. Internetwork dependencies require a network agent workstation to communicate with the external IBM Workload Scheduler network.
- Conditional dependencies (distributed)
- A relationship between one job, named the successor, and one or more jobs or job streams,
named predecessors, stating that the successor can run only when a specific
combination of conditions occur or are satisfied by the predecessor job. Job output
conditions are set on the job definition and when a conditional dependency is added to a job
in a job stream, the output conditions that must be satisfied by the predecessor job are
specified. Conditions can include if the job has started, the state of the job, and any
number of custom defined conditions, often expressed as job return or exit codes. You can
specify that only a single condition must be satisfied, all conditions must be satisfied, or
specify a subset of conditions that must be satisfied.
When the conditions are not met by the predecessor, then any successor jobs with a conditional dependency associated to them are put in suppress state. Successor jobs with a standard dependency or no dependency at all defined run normally.
Note:Conditional dependencies are evaluated after any standard dependencies in the job or job stream are satisfied.
- Dependencies in a z/OS environment:
- You can have different kind of dependencies between jobs and job streams.
They can be:
- Internal dependencies
- These are dependencies established between jobs belonging to the same job stream.
- External dependencies
- These are dependencies between job streams, between job streams and jobs
belonging to other job streams, or between jobs belonging to different job streams. The following
resolution criteria are used to satisfy these dependencies:
- Closest preceding
- The closest preceding in time before the instance that includes the dependency.
- Same scheduled date
- The instance planned to run on the same day.
- Within a relative interval
- The closest preceding instance within the relative time interval you chose, or, if none is found, the closest following instance within the relative time interval you chose.
- Within an absolute interval
- The closest preceding instance within an absolute time interval you chose, or, if none is found, the closest following instance within the absolute time interval you chose.
Regardless of the used matching criteria, if multiple instances of potential predecessor job streams exist in the specified time interval, the rule used by the product to identify the correct predecessor instance is the following:- IBM Workload Scheduler searches for the closest instance that precedes the depending job or job stream start time. If such an instance exists, this is the predecessor instance.
- If there is no preceding instance, IBM Workload Scheduler considers the correct predecessor instance as the closest instance that starts after the depending job or job stream start time.
- Condition dependencies (z/OS)
- It
is a relationship between one job, named a conditional successor, and one or more jobs, named
conditional predecessors, stating that the conditional successor can run only when a specific
combination of conditional predecessor status and return code values occurs. You can define a
conditional dependency where the conditional successor starts if its conditional predecessors are in
ended-in-error or started status. Note: Condition dependencies are always managed as external dependencies, even if they link jobs belonging to the same job stream occurrence in the plan.
- Cross dependencies
- In multiple heterogeneous scheduling environments you can define dependencies on batch activities managed by other IBM Workload Scheduler environments. To define a cross dependency on a job running on a different IBM Workload Scheduler engine, you must define a dependency on a locally-defined shadow job pointing to the remote job instance and running on a remote engine workstation. The remote engine workstation manages the communication with the remote engine using an HTTP or HTTPS connection.
Dependencies on resources are supported by IBM Workload Scheduler in both the distributed and z/OS environments.