I am looking for information to understand what is the best way to have JOBS scheduler for a given case as below
My requirement - I have a list of JOBS which have to run in particular sequence for various applications. Also among my list of JOBS, while execution there is interdependency among other application jobs.
Example. I have application A, B, C each with 3 JOBS .
A1, A2, A3, B1, B2,B3 & C1,C2, C3 . The sequence of running these JOBS could something be like
So A2 job cannot run unless C3 is completed. Likewise for B2 to be executed C2 must have been completed.
If sequence is known and predictable we can make a format and get the jobs submitted accordingly. But in my case, I have unpredictable sequences and many applications ( which varies each time based on requirement ). In such case when JOBS of application A, B , C are triggered at same time - when there is a interdependency on another application encountered, the tool/logic/script should be able to automatically verify status of dependency JOB and accordingly proceed to next one or wait for completion and then proceed.
So in this situation ( which I feel is common in many major Mainframe applications ) - what is the best way to handle ? Do we already have any mainframe tool / utility for this ? Or using a scripting language and developing a code to match such action is the only solution ?
Can someone who has good experience with mainframe suggest me about it ?
only helps if you're on z/OS 2.2, but it introduces a new thing called Job Execution Control (JEC) and Deadline Scheduling to JES2 to allow complex scheduling via standard JCL.
It can combine a set of jobs into a network of jobs with related dependencies using a JOBGROUP JCL statement. There's 10 new JCL statements to provide JEC support as follows:
JOBGROUP: Creates a new job group
ENDGROUP: Denotes the end of the job group
GJOB: Defines a job within a job group
JOBSET: Provides convenient method to define and reference a set of jobs with identical dependencies
SJOB: Defines a single job within the job set
ENDSET: Denotes the end of the job set
BEFORE: Defines jobs or job sets that the current job must run before
AFTER: Defines jobs or job sets that the current job must run after
CONCURRENT: Defines a set of jobs or job sets that must execute at the same time (simultaneously) on the same JES2 MAS member
SCHEDULE: Associates a job with a job group
- Ability to hold a job until a specified time (HOLDUNTL)
- Ability to tell the system that it is desirable that a particular job should start by a specified time (STARTBY). The STARTBY function is also known as deadline scheduling control.
- Ability to run a job at the same time and on the same system as another job (WITH)