JOBLIB / STEPLIB
JOBLIB
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 ->
//MYJOB JOB (E343),'STUDENZONE'
//JOBLIB DD DSN=SE.TEST.LOADLIB,DISP=SHR <--- Attention
//STEP1 EXEC PGM=COBPROG
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.
STEPLIB
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),'STUDENZONE
'
//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.