JCL Ibm
JCL Ibm
Welcome to JCL
JCL Input
SPOOL
PROCLIB Conversion
In-Stream Data
Execution Printout
Output Print
Purge
JES3 - Job Processing Phases
JCL Input
SPOOL
PROCLIB Conversion
Resource Allocation
In-Stream Data
Execution Printout
Output Print
Purge
Job Input Phase
JCL
Job Queue
Job Class
10 T
121 Z
854 B
1096 A JES2
. .
. .
. .
SPOOL
JCL
DATA
Job Conversion Phase
PROCLIB
CONVERSION
SPOOL
JCL SPOOL
DATA Internal Text
Job Execution Phase
Job Queue
Job Class
10 T
121 Z
854 B
JES2
1096 A
. .
. .
. .
Request
SPOOL
Job Output and Purge Phases
BEFORE
SPOOL
JCL
DATA
Results
JES2
Message
SPOOL
JCL
DATA
Results AFTER
JCL History
****** ********************************************
000100 //... Identifies a JCL Statement
000200
000300 //*... Identifies a Comment or JES3 Control
000400 Statement
000500 /*...
000600 Identifies a Delimiter or JES2 Control
Statement
The Name Field
Examples:
Examples:
Statement Syntax:
//name OPERATION P1,P2,P3,K1=n,K2=n
Free Flow:
//name OPERATION P1,,P3,K2=9,K1=4
****** ********************************************
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
000100 //AUES100A JOB (AUES100),
000200 // 'REXX',
000300 // MSGCLASS=T,
000400 // CLASS=L,
000500 // NOTIFY=AUES100
000600 //STEP1 EXEC PGM=CHECK,PARM='THIS IS A VERY LONG PARAMETER LIST IN
000700 // APOSTROPHES, CONTINUED IN COLUMN 16'
000800 //DATA DD DSN=AUES100.TEST.DATA,DISP=SHR THIS IS A CONFUSING METHOD OF C
00900 // CONTINUING A COMMENT, BETTER TO START A NEW COMMENT STATEMENT
Three Major Types of JCL Statements
//DCBINFO DD DSN=AUES100.TEST.RESULTS,
// DISP=(NEW,CATLG),
// UNIT=SYSDA,SPACE=(TRK,(1,1)),
// LRECL=80,RECFM=FB,BLKSIZE=0
//EXPDT DD DSN=AUES100.BACKUP.COPY,
// DISP=(NEW,CATLG),
// DATACLAS=DCLAS02,
// LRECL=256,EXPDT=2002/180
//LIKE DD DSN=AUES100.LIKE.TEST.RESULTS,
// DISP=(NEW,DELETE,DELETE),
// LIKE=AUES100.TEST.RESULTS,
// SPACE=(4096,(10,2)),AVGREC=K
Examples of DD Statements (2 of 2)
//CONCAT DD DSN=AUES100.TEST.LIB1,DISP=SHR
// DD DSN=AUES100.TEST.LIB2,DISP=SHR
//NULLIFY DD DUMMY,DISP=(NEW,CATLG,DELETE),
// SPACE=(4096,(10,2)),AVGREC=K
//SPOOL DD SYSOUT=T
In-stream Data (1 of 2)
ISPF/PDF Editor
File Edit Confirm Menu Utilities Compilers Test Help
Command ===> submit Scroll
===>
EDIT AUES100.TSOE.CNTL(AMS2) - 01.00
****** *************************** Top of Data
*****************************
000001 //AUES100A JOB (AUES100),
000002 // CLASS=L,
000003 // MSGLEVEL=(1,1),
000004 // NOTIFY=AUES100,
000005 // MSGCLASS=T
000006 //STEP1 EXEC PGM=IDCAMS
000007 //SYSPRINT DD SYSOUT=*
000008 //SYSIN DD *
000009 DELETE AUES100.RRDS PURGE
ISPF/PDF Editor
File Edit Confirm Menu Utilities Compilers Test Help
Command ===> submit Scroll ===>
EDIT TSOFS20.TSOE.CNTL(AMS2) - 01.00
****** *************************** Top of Data *****************************
000001 //TSOFS20A JOB 3ES10G10000012,
000002 // CLASS=A,
000003 // MSGLEVEL=(1,1),
000004 // NOTIFY=TSOFS20,
000005 // MSGCLASS=Q
000006 //STEP1 EXEC PGM=IDCAMS
000007 //SYSPRINT DD SYSOUT=*
000008 //SYSIN DD *
000009 DELETE TSOFS20.RRDS PURGE
Option ===>
Outlist Utility
Option ===> L
Outlist Utility
Register
... 14 15 ...
... ...
IEFBR14 CSECT
LA R15,0 ....
BR R14
Initiator
Address Spaces
Common Utility DDNAMES
//SYSIN DD * //SYSPRINT DD
IEBCOPY
Copy
PDS PDS
Copy
PDSE PDSE
Convert
PDS PDSE
Load/Unload IEBCOPY
PDS
PDSE PDSU
Merge
PDS
PDS PDSE
PDSE
Compress
PDS
Copying using IEBCOPY
Unload Load
PDSU
Compressing a PDS with IEBCOPY
DDNAME A DDNAME B
Directory Directory
A B C ... A B C ...
Backup
SEQ.DS
MEMBER
Create PDS
SEQ.DS PDSE
MEMBER
Add
SEQ.DS MEMBER
IEBGENER
SEQ.DS Create/Edit PDS
PDS PDSE
PDSE MEMBER
Print
SEQ.DS
MEMBER
Reblock/Change
Data Set
Creating a Backup Copy with IEBGENER
Sequential
Data Set or
Member of IEBGENER
PDS/PDSE
DFSORT
Sorted
Data Sets
Merged
DFSORT
Copied
DFSORT Utility DDNAMES
PGM=DFSORT
//SYSIN DD * //SYSOUT DD
//SORTWK.. DD
The SORT Process
BAKER ABLE
ABLE BAKER
ECHO CHARLIE
DELTA DELTA
CHARLIE ECHO
KILO FOXTROT
LIMA SORT GOLF
INDIA HOTEL
GOLF INDIA
HOTEL JULIET
FOXTROT KILO
JULIET LIMA
SORT FIELDS=(1,7,CH,A)
SORT JCL Example
PROCEDURE
_____________
___________
JOB ____________
________
_______________ PROCEDURE
____________ ___________
____________
PROCEDURE
_________
____________
______________
_____________
Types of Procedures
SYS1.PROCLIB PROC
.
..
.
JOBn .
Example of an In-stream Procedure
//jobname JOB...
//name PROC
. 1 Private
.
// PEND 2 Proclib(s)
.
//step EXEC PROC=name
or
//step EXEC name
3
System
Proclib(s)
Specifying Private PROCLIB
MY.PROC1
//MYJOB JOB ... PRC11 PRC12 PRC13
.
. PRC14 PRC15 PRC16
//MYLIB JCLLIB ORDER=(MY.PROC1,
// MY.PROC2)
.
PRC17 PRC18 ...
.
//STEP1 EXEC PROC=PRC23 MY.PROC2
.
PRC21 PRC22 PRC23
.
.
PRC24 PRC25 PRC26
.
.
//INPROC PROC
//STEP1 EXEC PGM=APGM
//IN DD DSN=TESTA.DATA,DISP=SHR
.
.
Overrides // PEND
.
.
//STEPn EXEC INPROC
//STEP1.IN DD DSN=TESTB.DATA
//...
.
.
JCL Symbols
Example:
000100 //MYPROC PROC DATASET='AUES100.DEFAULT.DATA',
000200 // OUTCLASS=A
000300 //STEP1 EXEC PGM=PRNTDATA
000400 //INPUT DD DSN=&DATASET,...
000500 //OUTPUT DD SYSOUT=&OUTCLASS
000600 // PEND
000700 //S1 EXEC MYPROC,
000800 // DATASET='AUES100.OVERRIDE.DATA'
INCLUDE Groups
//TESTJOB JOB ...
//LIBSRCH JCLLIB ORDER=MY.PROC
//STEP1 EXEC PGM=PRINT
//OUTPUT INCLUDE MEMBER=SYSOUT2
//STEP2...
.
.