jcl

53
Job Control Language Day 1

Transcript of jcl

Page 1: jcl

Job Control Language

Day 1

Page 2: jcl

JOB CONTROL LANGUAGE

For IBM Mainframe System 390/ z/OS

Page 3: jcl

Pre-requisites

Programming Fundamentals.

MVS Operating system and its subsystem TSO.

Navigating through ISPF.

Page 4: jcl

References

# Title Authors Publishers

1. MVS JCL Doug Lowe Mike Murarch and Associates 2. System 370/390 JCL GD Brown

3. IBM Manuals

Page 5: jcl

Objectives of the Course1. 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.

Page 6: jcl

Objectives of the Session1. 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.

Page 7: 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 thatProvides specifications necessary to process a Job.

JOB AND A JCL

Page 8: jcl

J C L

JOB CONTROL LANGUAGE

Page 9: jcl

Determinethejob

CreatetheJCL

Submitthe

JOB

JESinterpretsJCL andpasses it

toMVS

MVS doesthe work

UserViews andInterprets

output

JEScollects

the outputand information

aboutthe JOB

SystemMessages

Page 10: jcl

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

Page 11: jcl

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

Page 12: jcl

Various stages of JCL execution Input Conversion Execution Output Hard copy Purge

Page 13: jcl

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

Various stages of JCL execution

Page 14: jcl

•Stages of Job Processing - INPUT

Job entry or input is how jobs are entered into the system.

• Local and remote card readers

• Via a started procedure

• Internal reader

• From another system via network job entry

Several methods are :

Page 15: jcl

Stages of Job Processing - INPUT

INPUT

SPOOL

JCLSYSIN

JES

MVS

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 JES Job Number as part of Input Processing

Page 16: jcl

Stages of Job Processing -CONVERSION

SPOOL

JCLSYSIN

• 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

MVS

JES

PROCLIB

PROC

• Full Syntax checking of the JCL is done at this time

• Input to the conversion process consists of the Original JCL and any cataloged procedure referenced by it

Page 17: jcl

Stages of Job Processing -CONVERSION

JOB INTERPRETER - JES2

JES2ADDRESS

SPACE

INITIATORADDRESS

SPACE

PAYJCL

INTERPRETER

PAYCONTROLBLOCKS

• JES2 gives job to idle initiator

• Initiator attaches the interpreter to build control blocks

• Control blocks used to start job in initiator

Page 18: jcl

Stages of Job Processing -CONVERSION

JOB INTERPRETER - JES3

JES3ADDRESS

SPACE

INITIATORADDRESS

SPACE

PAYJCL

INTERPRETER

PAYCONTROLBLOCKS

• JES Attaches the interpreter

• Interpreter builds the control blocks in the JES address space

• JES passes the CONTROL blocks to an idle initiator to start execution.

Page 19: jcl

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.

Page 20: jcl

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

Page 21: jcl

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.

Page 22: jcl

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

Page 23: jcl

Stages of Job Processing - HARDCOPY

• During this phase, job output characteristics and the output is sent to the physical devices.

Page 24: jcl

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

Page 25: jcl

JCL PROCESSING

JCL

SYSIN

SYSOUT

SPOOLJES2 /JES3

JES2 /JES3

INITIATOR1 INITIATOR2PRINTER

INPUTSTREAM

Page 26: jcl

JCL execution JCL INITIATION

STEP INITIATION

ALLOCATION

PROGRAM EXECUTION

STEP TERMINATION

JOB TERMINATION

JCL

SYSIN

SYSOUT

Page 27: jcl

QUESTIONS ???

• JCL is used to write an application program ? Yes/No

• What are the different stages of JCL processing ?

Page 28: jcl

JCL statements

JOB Job identification

EXEC Instruction for execution

DD Source of data to

operate

Page 29: jcl

TYPE OF STATEMENTS

JOB CONTROL STATEMENTS

UTILITY CONTROL STATEMENTS

Page 30: jcl

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

Page 31: jcl

Basic Format of a JCL :JCL FIELD NAMES

1. Identifier field2. NAME field3. OPERATION field4. PARAMETER field

Positional Keyword

5. COMMENT field

Page 32: jcl

JCL STATEMENT FORMAT

//P123 JOB 1234,AMLAN,CLASS=E JOBSTATEMENT

Name Parameters

OperationIdentifier Comment

Page 33: jcl

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 ( # , @ , $ )

Page 34: jcl

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

Page 35: jcl

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

Page 36: jcl

JCL subparameters :

DCB=(DSORG=PO,LRECL=80,BLKSIZE=6160)

DCB=(DSORG=PO) DCB=DSORG=PO

DISP=(,DELETE)

Comma place holders are required only for missingpositional subparameters.

Page 37: jcl

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=...,//SYSUT2 DD DSNAME=...,DISP=...,// UNIT=SYSDA,VOL=SER=MPS800,// UNIT=SYSDA,VOL=SER=MPS800,// SPACE=(CYL,(10,5,2)),// SPACE=(CYL,(10,5,2)),// DCB=DSORG=PO// DCB=DSORG=PO

( X ) Avoid continuing comments from line to line.

Page 38: jcl

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 !

Page 39: jcl

JCL statements

JOB Job identification

EXEC Instruction for execution

DD Source of data to

operate

Page 40: jcl

JOB STATEMENTACCT CLASSNAME NOTIFYMSGLEVEL TYPRUNMSGCLASS PRTYCOND RESTARTUSER REGIONPASSWORD PERFORMTIME

Page 41: jcl

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.

Page 42: jcl

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.

Page 43: jcl

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.

Page 44: jcl

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)

Page 45: jcl

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.

Page 46: jcl

IMPORTANT JOB PARAMETERS keyword parameters ( NOTIFY )

ex. //INFOSYSA JOB NOTIFY=INFOSYS

• NOTIFY notifies you at a time-sharing terminal when the job is completed.

Page 47: jcl

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.

Page 48: jcl

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.

Page 49: jcl

SOME OTHER keyword JOB PARAMETERS

• 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.

• 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.

Page 50: jcl

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.

Page 51: jcl

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.

Page 52: jcl

Causes of Abend Failures

Logic error JCL errorResource unavailabilityExceeding limits (Time or Space on DASD)Hardware MalfunctionUser ABENDSOperator interventionOperating System failure

Page 53: jcl

That’s all for

DAY

1