Title: Job Control Language
1Job Control Language
Bhargava KC Extension 52067 ER Rotunda, II
Floor, Cubicle 15 Email bhargava_sastry_at_infy.com
2 JOB CONTROL LANGUAGE For IBM Mainframe System
390
3 Pre-requisites
- Programming Fundamentals.
- MVS Operating system and its subsystem TSO.
- Navigating through ISPF.
4 Evaluation Scheme
- Quiz 20 Marks
- ( Conducted after 2 sessions of Input )
- OLE 80 Marks
5 References
Title Authors
Publishers 1.
MVS JCL Doug Lowe
Mike Murarch and Associates 2.
System 370/390 JCL GD Brown 3.
IBM Manuals
6 Objectives of the Course
- To acquaint participants to the specific nature
of Job Control Language. - To illustrate the syntax of JCL.
- To demonstrate the JCL programs, procedures,
Various Data set allocation mechanisms, IBM
Utilities - To acquaint the participants regarding the
importance of VSAM, GDGs, and concepts of SMS. -
7 Objectives of the Session
- To learn about JES as a Sub system and its
functions. - About JCL syntax in general
- About Job statement.
- Some sample examples.
8JOB AND A JCL
A JOB is the execution of one or more related
programs in sequence. Each Program to be
executed by a Job is Called a Step. Ex The
first program sorts customer names in a sequence
The second program generates a report
. Job Control Language is a set of control
statements that Provides specifications necessary
to process a Job.
9J
C
L
JOB
CONTROL
LANGUAGE
10JES interprets JCL and passes it to MVS
Determine the job
Create the JCL
Submit the JOB
MVS does the work
System Messages
JES collects the output and information about the
JOB
User Views and Interprets output
11WHY JCL ???
- MVS operating system is designed to work in the
batch processing mode - JCL is a powerful and flexible language that
helps to customize the use of local and remote
resources available to one or more computers
12Difference between batch interactive
processing
- Batch processing
- Jobs submitted are executed at later time
- User can not interact
- Performance measure is throughput
- Snapshot of output is used for debugging
- Interactive processing
- Jobs submitted are executed immediately
- User can interact
- Performance measure is response time
- Interactive debugging
13Various stages of JCL execution
- Input
- Conversion
- Execution
- Output
- Hard copy
- Purge
14Various stages of JCL execution
- Input JES gives a unique job number
- Conversion Check syntax error Place it in
JES spool - Initiator Taking the job from the spool
and sending it for execution - Output sends the output to printer
- Purge After job is processed,it is purged
15- Stages of Job Processing - INPUT
Job entry or input is how jobs are entered
into the system.
Several methods are
- Local and remote card readers
- From another system via network job entry
16Stages of Job Processing - INPUT
INPUT
MVS
SPOOL
JCL SYSIN
JES
During input processing , the job is placed out
on spool. At this point in time, a job consists
of
- Any JOB Entry Control Language (JECL) in the
Input Stream
- Any data SYSIN in the Input Stream
An entry is initialized in the Jobqueue and the
job is assigned a JES Job Number as part of
Input Processing
17Stages of Job Processing -CONVERSION
SPOOL
MVS
JCL SYSIN
JES
PROCLIB
PROC
- Input to the conversion process consists of the
Original JCL and - any cataloged procedure referenced by it
- Full Syntax checking of the JCL is done at this
time
- During conversion the JCL for a job is converted
to its internal - form, known as Converter/Interpreter text. All
of the jobs that - were marked awaiting conversion in the job Queue
are converted
18Stages of Job Processing -CONVERSION
JOB INTERPRETER - JES2
- JES2 gives job to idle initiator
PAY JCL
INTERPRETER
- Initiator attaches the interpreter
- to build control blocks
PAY CONTROL BLOCKS
- Control blocks used to start job
- in initiator
JES2 ADDRESS SPACE
INITIATOR ADDRESS SPACE
19Stages of Job Processing -CONVERSION
JOB INTERPRETER - JES3
- JES Attaches the interpreter
PAY JCL
- Interpreter builds the control
- blocks in the JES address space
INTERPRETER
- JES passes the CONTROL
- blocks to an idle initiator to
- start execution.
PAY CONTROL BLOCKS
JES3 ADDRESS SPACE
INITIATOR ADDRESS SPACE
20Stages of Job Processing - EXECUTION
- Initiator Invokes a program called Interpreter
which goes thru the - Job Input and creates a series of
Control blocks in Scheduler - Work Area , a part of Address space Private
Area. - 2. It then invokes Allocation routines that
decides on what resources - the Job step needs in terms of Units ,
Volumes and Data sets. - 3. Initiator then builds a User region where
the Users program - is loaded , control is transferred to
Program and the program gets - executed.
- When the Program execution is over Initiator
invokes deallocation - routines to release all the resources that
are used.
21Stages of Job Processing - EXECUTION
- INITIATOR is responsible for the EXECUTION step
of the Job
Initiator Eligible Job classes
1 A 2 B,C,D,H,L,T
3 B,C,D,H,L,T 4 B,C 5 B,C
6 C
22Stages of Job Processing - EXECUTION
- JES selects a job for execution , based upon job
CLASS - and job selection PRTY
- ex. //PAY JOB PRTY8,CLASSA
- Allocation ( of data sets and devices necessary
for execution ) - is performed.
- If the program reads any SYSIN data, a copy
will be read - from Spool and presented to the program.
- If the program creates any SYSOUT data, it
will be - Spooled, rather than sent directly to an
output device.
23Stages of Job Processing - OUTPUT
- After the job has terminated, the output created
is - analysed and grouped according to SYSOUT
- class and output characteristics
- Entries are then created in the Job Output Table
- (JOT) to reflect these various groupings
24Stages of Job Processing - HARDCOPY
- During this phase, job output characteristics
and - the output is sent to the physical devices.
25Stages of Job Processing - PURGE
- During Purge processing, all of the resources
allocated - to the job in earlier phases can be freed for
re-use. - These include
26JCL PROCESSING
INPUT STREAM
SPOOL
JES2 / JES3
JCL
SYSIN
SYSOUT
INITIATOR2
INITIATOR1
PRINTER
JES2 / JES3
27JCL execution
JCL INITIATION
STEP INITIATION
JCL
ALLOCATION
SYSIN
SYSOUT
PROGRAM EXECUTION
STEP TERMINATION
JOB TERMINATION
28QUESTIONS ???
- JCL is used to write an application program ?
- Yes/No
- What are the different stages of JCL processing ?
29JCL statements
- JOB Job identification
- EXEC Instruction for execution
- DD Source of data to operate
30TYPE OF STATEMENTS
- JOB CONTROL STATEMENTS
- UTILITY CONTROL STATEMENTS
31Basic Format of a JCL
- JCL statements are coded in 80 byte records -
- Only 72 of the 80 chars available to code JCL -
- last eight columns of each record reserved for an
optional sequence number
32Basic Format of a JCL
- JCL FIELD NAMES
- Identifier field
- NAME field
- OPERATION field
- PARAMETER field
- Positional
- Keyword
- COMMENT field
-
33JCL STATEMENT FORMAT
- //P123 JOB 1234,AMLAN,CLASSE JOBSTATEMENT
- Name Parameters
- Operation
- Identifier Comment
34Basic Format of a JCL ...
- Identifier Name Operation Parameters
Comments - Identifier
- Two slashes ( // ) starting in col 1.
- Exceptions -
- 1) For a delimiter statement, / starting in col
1 - 2) For a comment statement , // starting at col
1 - Name
- One to eight alphanumeric , starting with a
letter char. Starts from col 3. Valid chars
A-Z,0-9 or national characters ( , _at_ , )
35Basic Format of a JCL ...
- Operation
- A valid operation code, such as JOB, EXEC or DD.
Must be preceded and followed by a space. - Parameters
- One or more parameters depending on the
operation. Individual parameters are separated
from one another by commas, no intervening
spaces. - Comments
- comments may follow parameters, preceded by one
space and not extending beyond col 71
36JCL parameters
- JCL parameters
- 1) Positional parameters -
- Must occur at a specific position within the
parameters field - account for a missing parameter by a comma
- 2) Keyword parameters -
- UNITSYSDA ( no spaces )
- UNIT is a keyword parameter of value SYSDA
- Keyword parameters to come only after all
positional parameters have been coded, order of
keyword parameters immaterial
37JCL subparameters
- DCB(DSORGPO,LRECL80,BLKSIZE6160)
- DCB(DSORGPO) DCBDSORGPO
- DISP(,DELETE)
Comma place holders are required only for
missingpositional subparameters.
38Continuing JCL statements ...
- Break the parameter field with the comma that
follows a parameter or sub-parameter - Slashes in column 1 2 of following line
- Next parameter or sub parameter starting anywhere
between columns 4 - 16
- //SYSUT2 DD DSNAME...,DISP...,//
UNITSYSDA,VOLSERMPS800,//
SPACE(CYL,(10,5,2)),// DCBDSORGPO
( X ) Avoid continuing comments from line to line.
39Guidelines
- JCL cryptic
- Code just one or two parameters per line
- align the operation and parameters fields of each
statement - begin job with a group of comment statements that
document a job thoroughly - Name, date of coding, what each job step does,
any special processing requirements - Dont forget to update comments !
40JCL statements
- JOB Job identification
- EXEC Instruction for execution
- DD Source of data to operate
41JOB STATEMENT
- ACCT CLASS
- NAME NOTIFY
- MSGLEVEL TYPRUN
- MSGCLASS PRTY
- COND RESTART
- USER REGION
- PASSWORD PERFORM
- TIME
-
42IMPORTANT JOB PARAMETERS
positional parameters ( a/c inf
),name
ex. //INFOSYSA JOB (A123),AMLAN
- All these parameters are optional as far as JCL
is concerned, - they are probably required by your installation.
43IMPORTANT JOB PARAMETERS keyword
parameters ( CLASS )
ex. //INFOSYSA JOB CLASSA
- CLASS specifies the job class that is the
nature of the job. - Installation will specify which of the 36
possible classes to use - which is from A to Z and 0 to 9 .
- Installation establishes a default class that is
in effect if CLASS - is omitted.
44IMPORTANT JOB PARAMETERS keyword
parameters ( MSGCLASS )
ex. //INFOSYSA JOB MSGCLASSA
- MSGCLASS specifies the job scheduler message
output class. -
- Job scheduler messages include all messages not
printed by the - job steps being executed but the JCL messages
and system messages
- Installation establishes a default class that is
in effect if CLASS - is omitted.
45IMPORTANT JOB PARAMETERS keyword
parameters ( MSGLEVEL )
ex. //INFOSYSA JOB MSGLEVEL(1,1)
- MSGLEVEL(jcl,allocations) specifies the
printing of JCL - statements and allocation messages.
-
- ex. MSGLEVEL(0,1) will print only JOB statement,
and - all the allocation,JES,SMS and operator
messages
- By default it is MSGLEVEL(1,1)
46keyword parameters ( MSGLEVEL )
MSGLEVEL(X,Y) Where X is 0 thru 2 , Y is 0
thru 1
X 0 , Lists Job statements only. X 1 , Lists
all User JCL All catalogued procedures. X 2
, Lists all User JCL but no catalogued
procedures. Y 0 , No Initiator/terminator
messages to be listed. Y 1 , All
initiator/terminator messages to be listed.
47IMPORTANT JOB PARAMETERS keyword
parameters ( NOTIFY )
ex. //INFOSYSA JOB NOTIFYINFOSYS
- NOTIFY notifies you at a time-sharing terminal
when the job is - completed.
-
48IMPORTANT JOB PARAMETERS keyword
parameters ( TYPRUN )
ex. //INFOSYSA JOB TYPRUNSCAN
- TYPRUN checks the JCL and holds the job in the
input queue.
- TYPRUN SCAN checks the JCL for syntax errors
and suppresses execution - of the job
- TYPRUN HOLD holds the JCL in the input queue
for later execution.It is held - until the operator releases it.
- TYPRUN JCLHOLD(JES2 only) similar to HOLD but
the difference is it is - checked while it is not with the HOLD option.
- TYPRUN COPY(JES2 only) lists or duplicates the
lines placed in the JOB - statement to the class assigned in the
MSGCLASS parameter and suppresses - execution.
49SOME OTHER keyword JOB PARAMETERS
- PRTYpriority is related to the CLASS
parameter. It assigns - priority to jobs which belong to the same
class.priority numbers - range from (0-14) or (0-15) depending on
installations.
- TIME(min,sec) signifies how much time the JOB
must take to run.
- RESTARTSTEP3 Forces the JOB execution to start
from STEP3.
50SOME OTHER keyword JOB PARAMETERS
- ADDRSPCREAL It is used to specify whether the
program is - to use REAL or VIRTual ADDRess SPaCe. Default
is Virtual. If - Real is coded then the REGION parameter is
also to be coded.
- REGION96K To override the default amount of
workspace - assigned for the job.
- COND(4,LT) Permits the execution of a steps to
depend on the - return code from the previous steps.Will be
dealt in detail in Day2.
51Errors
- JCL syntax errors.
- JOB will not be executed
- JCL allocation errors.
- JES2-subsequent steps will not get executed.
- JES3-detects errors in the beginning.
52Abend Failures
An ABEND failure occurs under the following
conditions A program while executing, attempts
to perform an instruction or operation which the
system recognizes as being impossible or
unacceptable.
53Causes of Abend Failures
- Logic error
- JCL error
- Resource unavailability
- Exceeding limits (Time or Space on DASD)
- Hardware Malfunction
- User ABENDS
- Operator intervention
- Operating System failure
54Thats all for DAY 1