JCLLIB
A JCL statement that names the libraries to search for PROCs and INCLUDE members used by this job.
Also written JCLLIB ORDER, INCLUDE statement, INCLUDE MEMBER, private PROCLIB
When a job runs a PROC by name, JES has to find it. By default it searches the system's PROC libraries. A JCLLIB statement, placed after the JOB statement, adds your own libraries to the front of that search: // JCLLIB ORDER=(ZBANK.TEST.PROCLIB,ZBANK.PROD.PROCLIB).
The libraries are searched in the order listed, before the system ones. That lets you test a changed PROC from your own library without touching the shared copy.
JCLLIB is also used with the INCLUDE statement. // INCLUDE MEMBER=STDDD copies the JCL statements from a member into the job at that point. Sites use INCLUDE for groups of DD statements that many jobs share, so a change is made in one place.
If a job fails because a PROC or INCLUDE member was not found, check three things: that JCLLIB is present, that it names the right libraries, and that the member really is in one of them. JESJCL in the job output shows which statements were actually used.
Where can I learn this hands-on?
Right here, at ZedBank. You take a junior job at a simulated bank and learn each part of the work by doing it, with Zed beside you. There's nothing to install.
Start at ZedBankRelated
- PROCA reusable piece of JCL stored as a member and invoked by name, so common steps are written once.
- JCLJob Control Language: the language used to tell the mainframe what programs to run, in what order, and with what files.
- Partitioned datasetA dataset that works like a library or folder, holding many separately named members inside one dataset.
- MemberOne named item inside a partitioned dataset, such as a single program, job or copybook within a library.
- Symbolic parameterA name starting with an ampersand in JCL that is replaced with a value before the job runs, so the same JCL can be reused with different values.