Joined: 14 Oct 2005 Posts: 1188 Location: Bangalore,India
JOBLIB / STEPLIB
It is a DD (Data definition) statement, and it specifies where
the program (which is specified in EXEC statement) exists.
It is applicable to all job steps in that job. It cannot be used
in cataloged procedures.
Syntax -> //JOBLIB DD DSN=dataset
EXAMPLE JCL ->
Immediately following the JOB statement is the JOBLIB DD
statement. This is used to specify the location of the
program that is to be executed
It is also like JOBLIB. It is used to tell in which dataset program resides, It will be coded in JOB STEP. It is only for that step instead of entire JOB. It can be placed any where in the job step. STEPLIB can be coded in cataloged procedures.
Syntax -> //STEPLIB DD DSN=dataset
Example JCL ->
//MYJOB JOB (U456),'KRISHNA'
//STEP1 EXEC PGM=COBPROG
//STEPLIB DD DSN=TEST.MYPROD.LIB,DISP=SHR
//STEP2 EXEC PGM=COBPROG2
//STEPLIB DD DSN=TEST.MYPROD.LIB1,DISP=SHR
In above example, STEP1 is executing COBPROG which is member of TEST.MYPROD.LIB
STEP2 is executing COBPROG2 which is member of TEST.MYPROD.LIB1
If both the JOBLIB and STEPLIB statements are coded, then the STEPLIB specification will override JOBLIB specification.
JCLLIB: When you executing CATALOGED PROCEDURE, If you not specified where it is with JCLLIB statement , it will serach for this procedure in system procedure library SYS1.PROCLIB
Job will search the JCLLIB libraries first, in the order in which they?re coded. If the procedure is not found in any of the named libraries, SYS1.PROCLIB is searched
JOBLIB:- To set the load module library for the entire job. Afte the JOB and Before the EXEC statement.
STEPLIB:- To set the load module libraray for the specific step only. after the EXEC statement.
JCLLIB:- To oevrride the PDS name of the Procs/Members PDS. Afte the JOB and Before the EXEC statement.
Generally procs library is sys1.proclib, I want to change into my own PDS,
// JCLLIB ORDER=(MYPDS)