baseline jcl day1

advertisement
Job Control Language
Bhargava KC
Extension: 52067
E&R Rotunda, II Floor, Cubicle 15
Email: bhargava_sastry@infy.com
ER/CORP/CRS/OS02/003-1
4/13/2015
3
JOB CONTROL LANGUAGE
For IBM Mainframe System 390
ER/CORP/CRS/OS02/003-1
4/13/2015
4
Pre-requisites
Programming Fundamentals.
MVS Operating system and its subsystem TSO.
Navigating through ISPF.
ER/CORP/CRS/OS02/003-1
4/13/2015
5
Evaluation Scheme
 Quiz :
20 Marks
( Conducted after 2 sessions of Input )
 OLE :
80 Marks
ER/CORP/CRS/OS02/003-1
4/13/2015
6
References
#
Title
Authors
1.
MVS JCL
2.
System 370/390 JCL GD Brown
3.
IBM Manuals
Doug Lowe
ER/CORP/CRS/OS02/003-1
Publishers
Mike Murarch and Associates
4/13/2015
7
Objectives of the Course
1. To acquaint participants to the specific nature of Job
Control Language.
2. To illustrate the syntax of JCL.
3. To demonstrate the JCL programs, procedures, Various
Data set allocation mechanisms, IBM Utilities
4. To acquaint the participants regarding the importance of
VSAM, GDGs, and concepts of SMS.
ER/CORP/CRS/OS02/003-1
4/13/2015
8
Objectives of the Session
1. To learn about JES as a Sub system and its functions.
2. About JCL syntax in general
3. About Job statement.
4. Some sample examples.
ER/CORP/CRS/OS02/003-1
4/13/2015
9
JOB 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.
ER/CORP/CRS/OS02/003-1
4/13/2015
10
J
JOB
C
CONTROL
ER/CORP/CRS/OS02/003-1
L
LANGUAGE
4/13/2015
11
Determine
the
job
Create
the
JCL
JES
interprets
JCL and
passes it
to
MVS
Submit
the
JOB
System
Messages
User
Views and
Interprets
output
ER/CORP/CRS/OS02/003-1
MVS does
the work
JES
collects
the output
and information
about
the JOB
4/13/2015
12
WHY 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
ER/CORP/CRS/OS02/003-1
4/13/2015
13
Difference 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
ER/CORP/CRS/OS02/003-1
4/13/2015
14
Various stages of JCL execution
•
•
•
•
•
•
Input
Conversion
Execution
Output
Hard copy
Purge
ER/CORP/CRS/OS02/003-1
4/13/2015
15
Various stages of JCL execution
• Input
• Conversion
• Initiator
• Output
• Purge
JES gives a unique job
number
Check syntax error & Place it
in JES spool
Taking the job from the spool
and sending it for execution
sends the output to printer
After job is processed,it is
purged
ER/CORP/CRS/OS02/003-1
4/13/2015
16
•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
•
Via a started procedure
•
Internal reader
•
From another system via network job entry
ER/CORP/CRS/OS02/003-1
4/13/2015
17
Stages of Job Processing - INPUT
MVS
INPUT
SPOOL
JES
JCL
SYSIN
During input processing , the job is placed out on spool.
At this point in time, a job consists of :
• Any
JOB Control Language
• 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
4/13/2015
JES Job Number as part of Input Processing
18
ER/CORP/CRS/OS02/003-1
Stages of Job Processing -CONVERSION
MVS
JES
SPOOL
JCL
SYSIN
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
ER/CORP/CRS/OS02/003-1
4/13/2015
19
Stages of Job Processing -CONVERSION
JOB INTERPRETER - JES2
PAY
JCL
INTERPRETER
• JES2
gives job to idle initiator
• Initiator
attaches the interpreter
to build control blocks
PAY
CONTROL
BLOCKS
JES2
ADDRESS
SPACE
• Control
blocks used to start job
in initiator
INITIATOR
ADDRESS
SPACE
ER/CORP/CRS/OS02/003-1
4/13/2015
20
Stages of Job Processing -CONVERSION
JOB INTERPRETER - JES3
• JES Attaches
PAY
JCL
• Interpreter
builds the control
blocks in the JES address space
INTERPRETER
PAY
CONTROL
BLOCKS
JES3
ADDRESS
SPACE
the interpreter
INITIATOR
ADDRESS
SPACE
• JES
passes the CONTROL
blocks to an idle initiator to
start execution.
ER/CORP/CRS/OS02/003-1
4/13/2015
21
Stages of Job Processing - EXECUTION
1. 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 User’s program
is loaded , control is transferred to Program and the program gets
executed.
4. When the Program execution is over Initiator invokes deallocation
routines to release all the resources that are used.
ER/CORP/CRS/OS02/003-1
4/13/2015
22
Stages 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
ER/CORP/CRS/OS02/003-1
4/13/2015
23
Stages of Job Processing - EXECUTION
• JES
selects a job for execution , based upon job CLASS
and job selection PRTY
ex. //PAY JOB PRTY=8,CLASS=A
• 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.
ER/CORP/CRS/OS02/003-1
4/13/2015
24
Stages 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
ER/CORP/CRS/OS02/003-1
4/13/2015
25
Stages of Job Processing - HARDCOPY
•
During this phase, job output characteristics and
the output is sent to the physical devices.
ER/CORP/CRS/OS02/003-1
4/13/2015
26
Stages 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 :
–
Spool Space
–
Jobqueue space
–
JES job number
ER/CORP/CRS/OS02/003-1
4/13/2015
27
JCL PROCESSING
INPUT
STREAM
JES2 /
JES3
SPOOL
JCL
SYSIN
SYSOUT
PRINTER
JES2 /
JES3
INITIATOR1
ER/CORP/CRS/OS02/003-1
INITIATOR2
4/13/2015
28
JCL execution
JCL INITIATION
STEP INITIATION
JCL
SYSIN
SYSOUT
ALLOCATION
PROGRAM EXECUTION
STEP TERMINATION
ER/CORP/CRS/OS02/003-1
JOB TERMINATION
4/13/2015
29
QUESTIONS ???
• JCL is used to write an application program ?
Yes/No
• What are the different stages of JCL processing ?
ER/CORP/CRS/OS02/003-1
4/13/2015
30
JCL statements

JOB
Job identification

EXEC
Instruction for execution

DD
Source of data to operate
ER/CORP/CRS/OS02/003-1
4/13/2015
31
TYPE OF STATEMENTS
• JOB CONTROL STATEMENTS
• UTILITY CONTROL STATEMENTS
ER/CORP/CRS/OS02/003-1
4/13/2015
32
Basic 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
ER/CORP/CRS/OS02/003-1
4/13/2015
33
Basic Format of a JCL :
JCL FIELD NAMES
1.
2.
3.
4.
Identifier field
NAME field
OPERATION field
PARAMETER field
–
Positional
–
Keyword
5. COMMENT field
ER/CORP/CRS/OS02/003-1
4/13/2015
34
JCL STATEMENT FORMAT
//P123 JOB 1234,AMLAN,CLASS=E JOBSTATEMENT
Name
Parameters
Operation
Identifier
Comment
ER/CORP/CRS/OS02/003-1
4/13/2015
35
Basic 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 ( # , @ , $ )
ER/CORP/CRS/OS02/003-1
4/13/2015
36
Basic 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
ER/CORP/CRS/OS02/003-1
4/13/2015
37
JCL 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 • UNIT=SYSDA ( 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
ER/CORP/CRS/OS02/003-1
4/13/2015
38
JCL subparameters :
• DCB=(DSORG=PO,LRECL=80,
BLKSIZE=6160)
• DCB=(DSORG=PO)
DCB=DSORG=PO
• DISP=(,DELETE)
Comma place holders are required only for missing
positional subparameters.
ER/CORP/CRS/OS02/003-1
4/13/2015
39
Continuing 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=...,
// UNIT=SYSDA,VOL=SER=MPS800,
// SPACE=(CYL,(10,5,2)),
// DCB=DSORG=PO
( X ) Avoid continuing comments from line to line.
ER/CORP/CRS/OS02/003-1
4/13/2015
40
Guidelines :
• 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
• Don’t forget to update comments !
ER/CORP/CRS/OS02/003-1
4/13/2015
41
JCL statements

JOB
Job identification

EXEC
Instruction for execution

DD
Source of data to operate
ER/CORP/CRS/OS02/003-1
4/13/2015
42
JOB STATEMENT
ACCT
NAME
MSGLEVEL
MSGCLASS
COND
USER
PASSWORD
TIME
CLASS
NOTIFY
TYPRUN
PRTY
RESTART
REGION
PERFORM
ER/CORP/CRS/OS02/003-1
4/13/2015
43
IMPORTANT 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.
ER/CORP/CRS/OS02/003-1
4/13/2015
44
IMPORTANT JOB PARAMETERS
keyword parameters
( CLASS )
ex. //INFOSYSA JOB CLASS=A
•
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.
ER/CORP/CRS/OS02/003-1
4/13/2015
45
IMPORTANT JOB PARAMETERS
keyword parameters
( MSGCLASS )
ex. //INFOSYSA JOB MSGCLASS=A
•
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.
ER/CORP/CRS/OS02/003-1
4/13/2015
46
IMPORTANT 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)
ER/CORP/CRS/OS02/003-1
4/13/2015
47
keyword 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.
ER/CORP/CRS/OS02/003-1
4/13/2015
48
IMPORTANT JOB PARAMETERS
keyword parameters
( NOTIFY )
ex. //INFOSYSA JOB NOTIFY=INFOSYS
•
NOTIFY notifies you at a time-sharing terminal when the job is
completed.
ER/CORP/CRS/OS02/003-1
4/13/2015
49
IMPORTANT JOB PARAMETERS
keyword parameters
( TYPRUN )
ex. //INFOSYSA JOB TYPRUN=SCAN
• 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.
4/13/2015
ER/CORP/CRS/OS02/003-1
50
SOME OTHER keyword JOB PARAMETERS
• PRTY=priority : 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.
• RESTART=STEP3 :Forces the JOB execution to start from STEP3.
ER/CORP/CRS/OS02/003-1
4/13/2015
51
SOME OTHER keyword JOB PARAMETERS
• ADDRSPC=REAL : 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.
• REGION=96K :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.
ER/CORP/CRS/OS02/003-1
4/13/2015
52
Errors
• JCL syntax errors.
JOB will not be executed
• JCL allocation errors.
JES2-subsequent steps will not get executed.
JES3-detects errors in the beginning.
ER/CORP/CRS/OS02/003-1
4/13/2015
53
Abend 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.
ER/CORP/CRS/OS02/003-1
4/13/2015
54
Causes 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
ER/CORP/CRS/OS02/003-1
4/13/2015
55
That’s all for
DAY
1
ER/CORP/CRS/OS02/003-1
4/13/2015
56
Download