z/OS Introduction and Workshop
Job Control Language (JCL)
© 2018 IBM Corporation
© 2009 IBM Corporation
Unit Objectives
After completing this unit, you should be able to:
• Understand purpose of JCL
• Understand JCL JOB, EXEC, and DD statements
• Understand relationship of program file name to JCL DDNAME
• Locate JCL professional manuals, documentation, and online help
2 © 2018 IBM Corporation
“In the beginning ...”
Mainframes prior to S/360 were designed for scientific application number crunching.
The original S/360 hardware was designed from the ground up to meet the needs of business
where data throughput capability was greater than the speed of number crunching.
The original OS/360 needed to work with many newly planned Input and Output devices, aka
“peripherals”, to handle data throughput, I/O.
Business applications needed to be independent of any peripheral I/O device.
The S/360 and OS/360 design required Device-independent I/O methods.
JCL provided for the requirement of business applications to be independent of the I/O
devices.
3 © 2018 IBM Corporation
Job Control Language, JCL
Fred Brooks managed development of System 360 which evolved into today's mainframe
Fred Brooks jokes about JCL saying,
– “I always tell my students OS/360 Job Control Language is the worst programming
language ever designed anywhere by anybody for any purpose and it was done
under my management.”
Computer History Museum Event
https://www.youtube.com/watch?v=8c0_Lzb1CJw
4 © 2018 IBM Corporation
OS/360 JCL – the Worst Language
Done under my management
• One job language for all programming languages
• Like Assembler language, rather than PL/I, etc.
• But not exactly like: card-column dependent
• Too few verbs
• Declarations do verbish things, via parameters
• Awkward branching
• No clean iteration
• No clean subroutine call
●
Basic problem was pedestrian vision
– We did not see it as a schedule-time programming language, but as a “few
control cards”
– It was not designed, it just grew as needs appeared.
Fred Brooks
5 © 2018 IBM Corporation
JCL, Job Control Language
Computer code that tells the operating system what to do.
Job Control are the best words describing JCL.
The word "Language" in JCL could easily be replaced by
"Syntax" or "Commands" or "Statements".
JCL tells the computer what program to execute.
JCL provides a mechanism for the program to read input
and write output to requested physical resources.
A separation of internal program file name
from the physical resource name
JCL connects internal file name to physical
resource name
6 © 2018 IBM Corporation
Sequential Stream of Statements
Job Control Language (JCL) is a sequential collection of 80 character
records beginning with // which the operating system reads and interprets
JCL is used to
• Assign name and authority level
• Assign resources (programs, data, etc.) and services needed from
the operating system to process a task
JCL can be viewed as a list of statements to be ‘submitted’ for
background (batch) processing or ‘started’ for foreground (started task)
processing
7 © 2018 IBM Corporation
JCL Statement Fields 8.16 "
80 Bytes
//NAME OPERATION PARAMETER SEQ
Parameter – Positional & Keyword
details for the operation
Operation – Type of statement
Most common are EXEC and DD
Name – Identifies the statement so that other
statements and system can refer to it. 8 bytes or less
Identifier starts in column 1
// (followed by name and/or operation) Ignored (73-80)
/* (delimiter – end of data) Sequence numbers
//* (comment)
// (followed by all blanks – null..end of job)
8 © 2018 IBM Corporation
JCL Execute Program Statement
//MYSTEP EXEC PGM=
Parameter named program for the execute
operation
Operation is to execute
Name is a user selected “STEPNAME”
STEPNAME label identifies a specific EXEC statement
9 © 2018 IBM Corporation
JCL Execute Procedure
//MYSTEP EXEC PROC=
Parameter is a JCL procedure program for
operation to execute. PROC= is optional
Operation is to execute
Name is a user selected “STEPNAME”
STEPNAME label identifies a specific EXEC statement
** JCL PROC creation and execution are discussed in detail in //STEP2 session
10 © 2018 IBM Corporation
JCL Data Definition (DD)
//DDNAME DD DISP=SHR,DSNAME=
Parameters describe the input or output
resource
Operation is Data Definition
Name must match spelling of a program file name
Each ddname must be unique within EXEC stepname
11 © 2018 IBM Corporation
Execution
Job Control Language (JCL) instructs z/OS as a result of "submit” or "start “ command.
JCL is easily identified by // in column 1 and 2.
JCL is uppercase unless text is enclosed in quote marks such as unix file names.
Every batch JCL job must contain:
JOB statement
EXEC statement
JOB statement marks the beginning of a batch job and assigns a name to the job.
JCL started tasks do not require a JOB statement
EXEC (execute) statement marks the beginning of a job step, assigns a name to the
step, and identifies the program or procedure to be executed in the step.
Every batch job and started task has at least one EXEC statement.
12 © 2018 IBM Corporation
JCL (Job Control Language)
z/OS written application programs include internal file names
which are opened for reading and writing during execution.
The program hard coded file names are only names that are not
associated with any physical resources.
JCL associates the program file name with physical resources
such has disk data set names or unix file names.
JCL is used to process programs in the background (aka 'batch')
and to process programs in the foreground (aka 'started task').
JCL submit will result in batch processing of one or more programs.
JCL start will result in foreground processing of processing program.
13 © 2018 IBM Corporation
Statement Stream
//STEP1 EXEC PGM=MYPGM1
//PGMI DD DSN=MY.INPUT.DATA,DISP=SHR
//PGMO DD DSN=MY.OUTPUT.DATA,DISP=SHR
//*****
//* End STEP1 execution and Begin STEP2 execution
//*****
//STEP2 EXEC PGM=SYSPGM1
//SYSI DD DSN=SYS.INPUT.DATA,DISP=SHR
//SYSO DD DSN=SYS.OUTPUT.DATA,DISP=SHR
14 © 2018 IBM Corporation
PROGRAM INPUTS and OUTPUTS
MYPGM1 //STEP1 EXEC PGM=MYPGM1
OPEN FILE PGMI //PGMI DD DSN=MY.INPUT.DATA,DISP=SHR
OPEN FILE PGMO //PGMO DD DSN=MY.OUTPUT.DATA,DISP=SHR
READ FILE PGMI //*****
WRITE FILE PGMO //* End STEP1 execution and Begin STEP2 execution
//*****
SYSPGM1 //STEP2 EXEC PGM=SYSPGM1
OPEN FILE SYSI //SYSI DD DSN=SYS.INPUT.DATA,DISP=SHR
OPEN FILE SYSO //SYSO DD DSN=SYS.OUTPUT.DATA,DISP=SHR
READ FILE SYSI
WRITE FILE SYSO
When you want the program to read from or write to a different physical resource,
changing JCL DD statement eliminated need to change program and recompile.
15 © 2018 IBM Corporation
JCL DD Concatentation & Continuation
//STEP1 EXEC PGM=MYPGM1
//PGMI DD DSN=MY.INPUT.DATA,DISP=SHR
// DD DSN=YOUR.DATA,DISP=SHR
// DD DSN=SYS.DATA,DISP=SHR
//PGMO DD DSN=MY.OUTPUT.DATA,DISP=SHR
DD statement with a blank DDNAME is owned by previous DDNAME
MYPGM1 reads all 3 data sets associated with DDNAME PGMI
//STEP1 EXEC PGM=MYPGM1
//PGMI DD DSN=MY.INPUT.DATA,
// DISP=SHR
//PGMO DD DSN=MY.OUTPUT.DATA,
// DISP=SHR
Continuation of JCL operation statement is a comma followed by a space, then the next
line begins with // - one space followed by additional parameters for the JCL operation
16 © 2018 IBM Corporation
JCL JOB Statement – Batch Processing
//MYJOB JOB
//STEP1 EXEC PGM=MYPGM1
//PGMI DD DSN=MY.INPUT.DATA,DISP=SHR
//PGMO DD DSN=MY.OUTPUT.DATA,DISP=SHR
//*****
//* End STEP1 execution and Begin STEP2 execution
//*****
//STEP2 EXEC PGM=SYSPGM1
//SYSI DD DSN=SYS.INPUT.DATA,DISP=SHR
//SYSO DD DSN=SYS.OUTPUT.DATA,DISP=SHR
●
A job is a collection of related job steps - identified by a JOB statement.
●
When JCL is submitted using submit command, the JCL needs a JOB statement
●
JOB statement can be coded or system will prompt to generate a JOB statement
17 © 2018 IBM Corporation
JCL Statement Field Summary
Identifier
Name Operation Parameters
JOB parameters can consist of local customized
//MYJOB JOB accounting information and processing control
//STEP1 EXEC PGM=MYPGM1
//PGMI DD DSN=MY.INPUT.DATA,DISP=SHR
//PGMO DD DSN=MY.OUTPUT.DATA,DISP=SHR
//*****
//* End STEP1 execution and Begin STEP2 execution
//*****
//STEP2 EXEC PGM=SYSPGM1
//SYSI DD DSN=SYS.INPUT.DATA,DISP=SHR
//SYSO DD DSN=SYS.OUTPUT.DATA,DISP=SHR
18 © 2018 IBM Corporation
DD Operation Parameters
Examples of Commonly Used Parameters
DD DSN=DATA.SET.NAME,DISP=SHR
DD DSN=DATA.SET.NAME,DISP=(NEW,CATLG,DELETE),
SPACE=(CYL,(1,1)),UNIT=3390,VOL=SER=DISK01,
DCB=(LRECL=80,RECFM=FB,DSORG=PS)
DD PATH=’/u/mypath/myfile’,PATHOPTS=(ORDWR,OAPPEND)
DD PATH=’/u/mypath/myfile’,PATHOPTS=(OWRONLY,OCREAT),
PATHMODE=(SIRWXU,SIRGRP,SIROTH)
19 © 2018 IBM Corporation
Minimum JCL batch JOB example:
//MYJOB JOB
// EXEC PGM=IEFBR14
JCL batch job example with stepname of STEP1:
//MYJOB JOB
//STEP1 EXEC PGM=IEFBR14
JCL batch job example with multiple steps:
//MYJOB JOB
//STEP1 EXEC PGM=IEFBR14
//STEP2 EXEC PGM=IEFBR14
//STEP3 EXEC PGM=IEFBR14
20 © 2018 IBM Corporation
Process
JCL
1
2
Program
3
JES
6 z/OS
JES 4
spool Data
5
1) JCL submit
2) JCL requests program
Printer 7
3) Program loaded
4) JCL allocates resources needed by program
5) Resources provided to program
6) Program writes output to JES Spool
7) Output to printer as requested
21 © 2018 IBM Corporation
Process
//MYJOB JOB 1
// EXEC PGM=IEBR14
1
2
IEFBR14
3
JES
4 z/OS
spool JES Reader
1) JCL submit
2) JCL requests program
3) Program loaded
4) Output written to JES spool
22 © 2018 IBM Corporation
DD (Data Definition) Statements
The program opens DD names as input, output, or both.
The program has an internal file name that will match the JCL DD name.
This association allows different data set names or unix file names
to be used by the same program without changing the internal
program file name.
When JCL batch job executes, the system writes output to the system
controlled JES output queue, data sets and/or unix files as directed by
the JCL DD statements
23 © 2018 IBM Corporation
DD Parameters
DD 'parameters' reference z/OS controlled physical resources
such as unix file name, data set name and data set status
Examples:
PATH=‘/unixpath/filename’ <<<< unix file name reference
DSN=DATA.SET.NAME <<<< data set name reference
DISP=(start,end,abnormal_end) <<<< disposition status of data set
24 © 2018 IBM Corporation
Disposition
DISP is an operand of the DD statement
DISP indicates what to do with the data set (the disposition) at
step start, end, or abnormal end (if the job fails)
DISP helps to prevent unwanted simultaneous access to data
sets, which is very important for general system operation.
25 © 2018 IBM Corporation
DD Resource Disposition Parameter
DISP=status
DISP=(status,normal_end)
DISP=(status,normal_end,abnormal_end)
where ‘status’ can be
NEW
OLD
SHR where ‘normal_end’ can be:
MOD DELETE
KEEP where ‘abnormal_end’ can be:
PASS DELETE
CATLG KEEP
UNCATLG CATLG
UNCATLG
26 © 2018 IBM Corporation
JCL DD Operation Parameters
In addition to the JOB and EXEC statements, jobs may contain
one or more DD (Data Definition) statements used to identify
and characterize the program input and output.
Example:
//MYJOB JOB
//STEP EXEC PGM=SORT
//SORTIN DD parameters
//SORTOUT DD parameters
//SYSIN DD parameters
//SYSOUT DD parameters
JCL keyword DD is preceded by a 'DD name'.
The above JCL example has 4 'DD names',
SORTIN
SORTOUT
SYSIN
SYSOUT
27 © 2018 IBM Corporation
DD Operation
//MYJOB JOB
program input //STEP EXEC PGM=SORT
program output //SORTIN DD parameters
//SORTOUT DD parameters
//SYSOUT DD SYSOUT=*
1
2
Program
6
z/OS 3
JES JES Reader 4
spool
Data
5
1) JCL submit
2) JCL requests program
3) Program loaded
4) JCL //SORTIN DD
5) JCL //SORTOUT DD
6) JCL //SYSOUT DD SYSOUT=*
28 © 2018 IBM Corporation
JCL Referenced DDNAME
PAYROLL (program) JCL DATA SET
OPEN FILE=XYZ
READ FILE=XYZ //STEP1 EXEC PGM=PAYROLL
….. //XYZ DD DSN=DIV1.PAYROLL DIV1.PAYROLL
CLOSE FILE=XYZ
JCL is used to connect program file name to a z/OS physical resource such
as a data set name, unix file name, JES spool, printer, network device, etc.
//STEP1 EXEC PGM=PAYROLL results in open file=xyz
//XYZ DD DSN=DIV1.PAYROLL is xyz content read by the program
DD is abbreviation for Data Definition
XYZ in this example is a program file name
XYZ in this example is also known as the JCL DDNAME
29 © 2018 IBM Corporation
JCL Referenced DDNAME
PAYROLL (program) JCL DATA SET
OPEN FILE=XYZ
READ FILE=XYZ //STEP1 EXEC PGM=PAYROLL
….. //XYZ DD DSN=CORP.PAYROLL CORP.PAYROLL
CLOSE FILE=XYZ
JCL enables ability for same program to read a different z/OS
physical resource without changing the program source code
30 © 2018 IBM Corporation
JCL - What is JES? Job Entry Subsystem
In the z/OS operating system, JES manages the input and output job queues and data.
JES handles the following aspects of JCL processing for z/OS:
Reads JCL job into the operating system
Interprets the JCL (variable substitution, etc.)
Schedules job for processing
Controls job output processing
31 © 2018 IBM Corporation
JCL, JES & Batch Processing
IT U S E R A C T IO N S S Y S T E M A C T IO N S
D e t e rm i n e
J E S i n t e rp re t s
th e n e e d C re a t e S u b m it JC L and
and
c h a ra c t e ri s t i c s th e J C L th e J o b p a s s e s it to
z /O S i n iti a to r
o f th e J o b
z /O S
S y s te m m anages
e a c h s te p
M essages o f e x e c u ti o n
U ser J E S c o lle c ts
v ie w s
and J E S p ri n t s th e o u tp u t a n d
o u tp u t i n f o rm a t i o n
i n t e rp re t s
a b o u t th e J o b
o u tp u t
32 © 2018 IBM Corporation
JCL - Basic Syntax Review
//JOBNAME JOB
//STEPNAME EXEC
//DDNAME DD
//* … this is a comment statement
/* … this indicates end of data
// … this indicates end for JCL
33 © 2018 IBM Corporation
JCL – Example
//MYJOB JOB 1
//MYSORT EXEC PGM=SORT
//SORTIN DD DSN=ZIBM000.JCL(AREACODE),DISP=SHR
//SORTOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,3,CH,A)
/*
MYJOB is the jobname
MYSORT is the stepname
SORTIN is program input
SORTOUT is program output
SYSOUT is system output messages
SYSIN is control or data program input
34 © 2018 IBM Corporation
JCL JOB Output Listing
S … select all the JCL JOB output
? .... list all the JCL JOB DDNAMEs
35 © 2018 IBM Corporation
View and Understand JCL Job Output
JES2 Dynamically Allocates a few DDNAMEs for each JOB
JESJCLIN
JCL submitted
JESMSGLG
System messages for this job
JESJCL
All job control statements in the input stream
JESYSMSG
JES and operator messages about the job's processing
allocation of devices and volumes
execution and termination of job steps and the job
disposition of data sets
36 © 2018 IBM Corporation
JCL JOB Dynamically Allocated DDNAMEs
37 © 2018 IBM Corporation
JESJCLIN Output .. w/JCL error
38 © 2018 IBM Corporation
JESMSGLG Output .. w/JCL error
39 © 2018 IBM Corporation
JESJCL Output .. w/JCL error
40 © 2018 IBM Corporation
JESYSMSG Output .. w/JCL error
41 © 2018 IBM Corporation
JCL JOB Output .. w/JCL error
42 © 2018 IBM Corporation
JESJCLIN Output
43 © 2018 IBM Corporation
JESMSGLG Output
44 © 2018 IBM Corporation
JESJCL Output
45 © 2018 IBM Corporation
JESYSMSG Output
46 © 2018 IBM Corporation
Advanced JCL Features
• JCL Procedures (PROCs)
• PROC Overrides
• Temporary Data Sets
• Referback
• IF, THEN, ELSE, ENDIF
• SET
• JCLLIB
• INCLUDE
• COMMAND
• XMIT, OUTPUT
• In-Stream Data Variable Substitution
• Impact of Storage Management Subsystem, SMS
• Useful JOB statement parameters
• DCB
• JECL
47 © 2018 IBM Corporation
JCL Procedures
// PROC
Begin JCL procedure
• in-stream
• cataloged
// PEND
End JCL procedure
48 © 2018 IBM Corporation
JCL Procedures (PROC to PEND)
//MYJOB JOB 1
//MYPROC PROC
//MYSORT EXEC PGM=SORT
//SORTIN DD DSN=&SORTDSN,DISP=SHR
//SORTOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
// PEND
49 © 2018 IBM Corporation
JCL Procedures (continued)
//MYJOB JOB 1
//*------------------------------------------------------------------------------------------------*
//MYPROC PROC
//MYSORT EXEC PGM=SORT
//SORTIN DD DSN=&SORTDSN,DISP=SHR
//SORTOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
// PEND
//*------------------------------------------------------------------------------------------------*
//STEP1 EXEC MYPROC,SORTDSN=ZIBM000.JCL(AREACODE)
//SYSIN DD *
SORT FIELDS=(1,3,CH,A)
50 © 2018 IBM Corporation
JCL Procedures – Statement Override
//MYJOB JOB 1
//*
//MYPROC PROC
//MYSORT EXEC PGM=SORT
//SORTIN DD DSN=&SORTDSN,DISP=SHR
//SORTOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
// PEND
//*
//STEP1 EXEC MYPROC,SORTDSN=IBMUSER.AREA.CODES
//MYSORT.SORTOUT DD DSN=IBMUSER.MYSORT.OUTPUT,
// DISP=(NEW,CATLG),
// SPACE=(CYL,(1,1)),
// UNIT=SYSDA,VOL=SER=VPWRKA
//SYSIN DD *
SORT FIELDS=(1,3,CH,A)
51 © 2018 IBM Corporation
View and Understand JCL Job Output
JES2 Dynamically Allocated DDNAMEs for each JOB
JESJCLIN
JCL submitted
JESMSGLG
System messages for this job
JESJCL
All job control statements in the input stream
JESYSMSG
JES and operator messages about the job's processing
allocation of devices and volumes
execution and termination of job steps and the job
disposition of data sets
52 © 2018 IBM Corporation
In-stream JCL Procedure Statements in (JESJCL)
++ ... DD statement that was not overridden and all other JCL statements, except the
JCL comment statement. Each statement appears in the listing exactly as it appears in
the procedure.
+/ ... DD statement that was overridden (preceded by the overriding DD statement)
++* – Comment statement or considered comment
53 © 2018 IBM Corporation
In-stream JCL Procedure (JESJCLIN)
54 © 2018 IBM Corporation
In-stream JCL Procedure (JESMSGLG)
55 © 2018 IBM Corporation
In-stream JCL Procedure (JESJCL)
56 © 2018 IBM Corporation
In-stream JCL Procedure (JESYSMSG)
57 © 2018 IBM Corporation
Cataloged JCL Procedure Statement in (JESJCL)
XX ... DD statement that was not overridden and all other JCL statements,except the
JCL comment statement. Each statement appears in the listing exactly as it appears in
the procedure
X/ ... DD statement that was overridden (preceded by the overriding DD statement)
XX* ... JCL comment statement or consider comment
58 © 2018 IBM Corporation
Cataloged JCL Procedure (JESJCLIN)
59 © 2018 IBM Corporation
Cataloged JCL Procedure (JESMSGLG)
60 © 2018 IBM Corporation
Cataloged JCL Procedure (JESJCL)
61 © 2018 IBM Corporation
Cataloged JCL Procedure (JESYSMSG)
62 © 2018 IBM Corporation
Temporary Data Sets
A temporary data set is a data set that is created and deleted in the same job,
and is identified by coding one of the following:
DSNAME=&&dsname
For a temporary data set
DSNAME=&&dsname(member)
For a member of a temporary PDS or PDSE
No DSNAME parameter
For a temporary data set to be named by the system
63 © 2018 IBM Corporation
Referback to an earlier DD statement
If a data set name is used several times in a job, copy it from the DD statement that uses it first.
It can be copied whether it is specified in the DSNAME parameter or assigned by the system.
Use copying to make changing data sets from job to job easier and to eliminate having to
assign names to temporary data sets.
Copy a data set name by coding:
//ddname DD DSNAME=*.ddname
//ddname DD DSNAME=*.stepname.ddname
//ddname DD DSNAME=*.stepname.procstepname.ddname
64 © 2018 IBM Corporation
Other Commonly Used JCL Operations
• //name IF (condition) THEN
• //name ELSE
• //name ENDIF
• //name SET
• //name JCLLIB
• //name INCLUDE
• //name COMMAND
• //name XMIT
• more exist
65 © 2018 IBM Corporation
IF, THEN, ELSE, ENDIF
//START EXEC PGM=MYPGM1
// IF RC=0 THEN
//SUCCESS EXEC PGM=MYPGM2
// ELSE
//FAILURE EXEC PGM=MYPGM3
// ENDIF
66 © 2018 IBM Corporation
//name SET
Defines and assigns values to symbolic parameters
used when processing JCL statements.
//name JCLLIB ORDER=(names of the libraries to be searched)
//SET1 SET LIB=MY.JCLLIB,D=MY.INPUT.DATA,M=AA
//*
//PRIVATE JCLLIB ORDER=(&LIB)
//*
//* search for MYPROC first in MY.JCLLIB
//*
//COPY EXEC MYPROC
//INDATA DD DSN=&D,DISP=SHR
//MOREJCL INCLUDE MEMBER=&M
67 © 2018 IBM Corporation
Standalone JCL Operations
//name COMMAND system_command
Only if enabled and ID has authority
//name XMIT parameters
Transmit records to a defined location
68 © 2018 IBM Corporation
JCL DD * uses JES Spool to store data
MYPGM
read mydata //S1 EXEC PGM=MYPGM
//MYDATA DD *
ABCDEF
123456
/*
JES Spool
ABCDEF
123456
Variables in the
//name DD *
data stream
/*
is possible with JCL DD SYMBOLS parameter
69 © 2018 IBM Corporation
JCL DD *,SYMBOLS= enable variable conversion
MYPGM
read mydata //S1 EXEC PGM=MYPGM
//MYDATA DD *,SYMBOLS=CNVTSYS
&SYSUID
123456
/*
JES Spool
Z00001
123456 where &SYSUID = Z00001
SYMBOLS=JCLONLY
JCL symbols and JES symbols found in the in-stream data set are replaced with their values
SYMBOLS=EXECSYS
JCLONLY and system system symbols
SYMBOLS=CNVTSYS
EXECSYS and substitute variables on the system where conversion occurred
70 © 2018 IBM Corporation
SMS, Storage Management Subsystem
Enables Disk Storage Administrators to simplify JCL DD parameters
Locally documented JCL procedures and policy
ACS, Automatic Class Selection, routine parses and changes JCL
Routine assigns DD operands based upon any of the following:
1) Data Set Name
2) DATACLAS=
3) MGMTCLAS=
4) STORCLAS=
Routine discards user JCL DD operands and substitute different JCL DD parameters
71 © 2018 IBM Corporation
Useful JOB Statement Parameters
TYPRUN=
SCAN check JCL syntax
HOLD hold until command to release
JCLHOLD JES2 hold until command to release
COPY copy JCL to output without processing
NOTIFY=
&SYSUID any valid ID
TIME= modify default processing time
REGION= modify default processing memory
MEMLIMIT=
PAGES= modify default output volume
LINES=
EMAIL=
Numerous more
72 © 2018 IBM Corporation
DD Operation DCB= parameter
Used to assign attributes to a resource such as a data set name
Logical Record Length
Record Format
Data Set Organization
DCB, Data Control Block, operands
LRECL=
RECFM=
DSORG=
Assembler Macro
LIKE= parameter exists for newly allocated data set names
73 © 2018 IBM Corporation
JES JECL Statements
JES Job Entry Control Language
Category of JCL used to control JOB setup and special processing
JES3 JECL stablized
No new JECL advancements
JES2 JECL
Now includes most JES3 JECL capabilities
Recent advancements and future enhancements
74 © 2018 IBM Corporation
JCL and System Utilities
z/OS includes a number of programs useful in batch processing called utilities.
Utilities provide many small, obvious, useful and often critical functions.
Some examples of system utilities:
IEBGENER Copies a sequential data set
IEBCOPY Copies a partitioned data set
IDCAMS Works with VSAM data sets
IKJEFT01 Run any TSO workload in batch
SORT Data sequencing and formatting
75 © 2018 IBM Corporation
JCL and Utilities Documentation
MVS JCL User’s Guide
MVS JCL Reference
DFSMSdfp Utilities
hyperlinks
Basic JCL Concepts
Reusable JCL Examples
76 © 2018 IBM Corporation
wikipedia.org
77 © 2018 IBM Corporation
https://www.tutorialspoint.com/jcl/index.htm
https://www.tutorialspoint.com/jcl/index.htm
78 © 2018 IBM Corporation
Unit summary
Having completed this unit, you should be able to:
Understand purpose of JCL
Understand JCL JOB, EXEC, and DD statements
Understand relationship of program file name to JCL DDNAME
Locate JCL professional manuals, documentation, and online help
79 © 2018 IBM Corporation
Lab #2
Use JCL Sort Data
Use JCL Procedure (PROC) to sort data
Use JCL to Compile, Link and Execute COBOL
Use JCL to Define VSAM data set and copy data to the VSAM data set
Use JCL to Compile, Link and Execute COBOL program - VSAM input
80 © 2018 IBM Corporation