SlideShare a Scribd company logo
SKILLWISE - JOB
CONTROL LANGUAGE
Objectives
Course Outline
Introduction - Job Control Language
JOB Statements
EXEC Statements
DD Statements
GDG and some commonly used utilities
Commonly Occurring Abend Codes
Q & A
3
What is JCL ?
• What is a JCL?
– Job Control Language - means of communication between an application
program and the computer's operating system (the IBM OS 390 MVS
Operating System).
• What Can I Do With JCL?
– Submit a job to the operating system
– Request resources needed to run the job
– Control the system’s processing of the job
• What is needed to Write JCL?
– Access to the IBM mainframe computer
– A valid TSO user ID
4
What is a Job?
• Job is something that you want to accomplish with the aid
of a mainframe
• Examples
 Copy a data set
 Execute a program
 Process multiple job steps.
5
Functions of JCL
• It identifies your Job to the system.
• It describes the Job’s requirements.
• It directs the execution of the program(s)
• It describes the devices(readers,printers etc.) and
resources(datasets) needed by the program(s).
• JCL statements provide information that the operating
system needs to execute a job
6
JCL Statement Format
• Job Control Language (JCL) is very precise.
• It has specific rules of grammar and syntax that must be
followed.
• Must not contain any irregularities.
• The JCL will be rejected if it contains typographical
errors (including extra or missing spaces or commas),
fields in the wrong order, etc.
• JCL and JES2 statements (except for comments) must not
contain lower case letters.
7
JCL Statement Types
• JOB STATEMENT :
Provides accounting information as well as job name to
each job.
• EXEC STATEMENT:
Calls specified program or procedure for execution.
• DD STATEMENT:
Provides details about the various resources used by the
program.
8
JCL Statement Types
• COMMENT STATEMENT:
The comment statement contains comments. It is used
primarily to document a program and its resource
requirements.
• DELIMITER STATEMENT:
The delimiter statement signifies the end of a job step or
end of data.
• NULL STATEMENT:
The null statement signifies the end of a job.
9
JCL Statement Fields
 Each Job Statement is logically divided into:
 Identifier Field
 Name Field
 Operation Field
 Parameter Field
 Comment Field
10
JCL Statement Fields(contd..)
//L110 JOB (00124,'MONTHLY STATISTICS'),
// CLASS=P,MSGCLASS=P,REGION=0M
//LST11008 EXEC PGM=TEST
//LST11018 EXEC LST11018,ENV=IPHP,UNITCT=CART,CTL=IPHP,
// UNITDA=PRODDA
//SYSIN DD *
//SYSPRINT DD SYSOUT=*
11
Identifier
field
Name
field
Operation
field
Parameter
field
JCL Statement Fields
– Identifier Field
 Indicates to the system that a statement is a JCL
statement rather than data.
 The identifier field is located in columns 1, 2 and 3
 Indicates if it is a JCL statement , delimiter statement or a
comment statement
 // indicates it is a JCL statement
 /* indicates it is a delimiter statement
 //* indicates it is a Comment statement
12
//JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
JCL Statement Fields
– Name Field
 The name field associates a name with the JCL statement
so that the system can refer to it.
 For JCL statements, code the name as follows:
 The name must begin in column 3.
 The name is 1 through 8 alphanumeric or special ($,
#, @) characters.
 The first character must be an alphabet or special
character ($, #, @).
 The name must be followed by at least one blank.
13
//JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
JCL Statement Fields
- Operation Field
 The operation field specifies the statement function.
 Code the operation field as follows:
The operation field follows the name field.
The operation field must be preceded and followed
by at least one blank.
The Operation field is required and begins anywhere
in columns 4 through 15.
14
//JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
JCL Statement Fields
– Parameter Field
• The parameter field, also sometimes referred to as the
operand field
• The Operand Field provides details and instructions
necessary for the system to perform the job. It is composed of
one or more parameters, separated by commas.
• There are positional parameters, which appear in a specific
order, and keyword parameters, which are of the form
KEYWORD=VALUE.
15 //JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
JCL Statement Fields
– Comments Field
 The comments field contains any information you seem
helpful when you code the control statement. Code the
comments field as follows:
 The comments field follows the parameter field.
 The comments field must be preceded by at least
one blank and ends in column 71.
 You can code comments after the parameter field
even though you continue the parameter field on
a subsequent statement
16
//STEP001 EXEC PGM=PROGRAM1 => NEW PGM
//INPUT1 DD DSN=INFILE,DISP=SHR
//REPORT1 DD SYSOUT=*
JOB statement
• The Job statement names a job, supplies accounting
and billing information, and supplies options to
control processing of the job.
• The JOB statement is always your first JCL
statement. It signals the beginning of a job and the
end of any previous job and assigns a name to your
job.
//L116 JOB (00124,‘PROGRAMMER NAME'),
// CLASS=J,MSGCLASS=Z,REGION=0M,MSGLEVEL=(0,0),
// NOTIFY=SYSID,TIME=(2,30),TYPRUN=SCAN,RESTART=STEP2
• The JOB card requires
– the Job name, which appears on the header page of your output,
– the word JOB in the Operation field,
– the accounting information for your job,
– the programmer's name.
17
Positional Parameters
on the Job Card
 Positional parameter must precede the keyword
parameters.
Job Accounting information parameter
 identifies the account number which will be billed
for the CPU time utilized on the mainframe
Syntax
(account-number,additional-accounting-information)
//JOB1 JOB (A189,DEPT1)
Positional Parameters
on the Job Card
 Programmer-Name parameter
Name
Information related to the job being submitted
The PROGRAMMER name can be a maximum of 20
characters.
//JOB1 JOB (A189),SUNIL
Keyword Parameters
on the Job Card
• Must follow positional parameter
• Can be coded in any order
 CLASS
 PRTY
 MSGCLASS
 MSGLEVEL
 REGION
 TYPRUN
20
CLASS parameter
 The CLASS parameter is used to assign your job to a job
processing class. The CLASS parameter specifies the class in
which the job will be run and it depends on the characteristics
of Job.
 CLASS=n where n varies from A-Z or from 0-9.
 If one does not specify the CLASS parameter the installation
establishes a default CLASS.
21
//JOB1 JOB (A189),SUNIL,CLASS=K
PRTY parameter
 The PRTY parameter is related to the CLASS parameter
 It assigns priority to jobs which belong to the same class
 PRTY=priority
 Priority is a number between 0 to 14, or 0 to 15
 The job with a higher number takes precedence over a job
with a lower number
A job with priority 10 will run before a job with priority 3.
22
//JOB1 JOB (A189),SUNIL,CLASS=8,PRTY=6
//JOB2 JOB (B189),SUNIL,CLASS=8,PRTY=9
 The MSGCLASS Parameter
 The MSGCLASS parameter assigns the job log for a job to a
particular sysout output class. MSGCLASS specifies the
default print class for all output data sets generated by the
job.
 MSGCLASS = n, where n is any value from A – Z or from
0 – 9. If omitted, the default MSGCLASS=A (Printer) is set
by the installation. The job log contains the JOB statement,
the JCL for the job, JCL processing messages, in-stream
and cataloged procedure statements, and JES2 messages
and MVS operator messages, if any.
23
MSGCLASS parameter
//JOB1 JOB (A189),SUNIL,CLASS=8,PRTY=6,MSGCLASS=A
MSGLEVEL Parameter
 The MSGLEVEL parameter is used to controls the
amount of system messages generated for a Job.
 The following job log elements can be controlled:
– Log messages indicating the job name, user name etc
routed to output device
– JCL statements comprising that job are output
– Messages related to execution of the job will be
output
– The output of the program being executed is output
24
MSGLEVEL=(statements, messages)
//JOB1 JOB (A189),MSGLEVEL=(1,1)
• Values for 'statements' in the MSGLEVEL
keyword can be one of these:
– 0 – Print only JOB statements
– 1 – Print all JCL and JES statements & messages
– 2 – Print only input JCL statements
• Values for 'messages' in the MSGLEVEL
keyword can be one of these:
– 0 – will result in only allocation/termination messages being output
if the job terminates abnormally
The system prints only JCL messages. It prints JES and operator
messages only if the job abnormally terminates, and prints SMS
messages only if SMS fails the job.
– 1 – will result in all allocation/termination message being output
regardless of whether the job terminates normally or abnormally
• Default value is (1,1)
25
MSGLEVEL Parameter
The JCL output for a batch job or any piece of work handled by JES2
or JES3 is a collection of three data sets. These three data sets (in the
order they appear in the output) are:
JES JOB LOG (JESMSGLG)
STATEMENT IMAGES (JESJCL)
SYSTEM MESSAGES (JESYSMSG)
Statements
Indicates which job control statements the system is to print in the
statement images portion of the JCL output. This subparameter is
one of the following numbers:
0 : The system prints the JOB statement and all comments and JCL
statements up to the first EXEC statement.
1 : The system prints all JCL statements, JES2 or JES3 control
statements, the procedure statements, and IEF653I messages, which
give the values assigned to symbolic parameters in the procedure
statements.
2 : The system prints only JCL statements and JES2 or JES3 control
statements.
26
MSGLEVEL Parameter
• Messages
Indicates which messages the system is to
print in the system messages portion of the JCL
output.
This subparameter is one of the following
numbers:
0 : The system prints only JCL messages. It
prints JES and operator messages only if the job
abnormally terminates, and prints SMS
messages only if SMS fails the job.
1 : The system prints JCL, JES, operator, and
SMS messages.27
MSGLEVEL Parameter
28
MSGLEVEL Parameter
REGION parameter
• REGION: The REGION parameter specifies the
amount of computer memory allocated for your
job. If the REGION parameter is omitted, the
system uses a default region size set by the
installation.
• Syntax:
– REGION [.procstepname ]={valueK} / {valueM} = 0M
valueK Specifies the required storage in kilobytes
valueM Specifies the required storage in megabytes
– A JOB statement REGION parameter applies to all steps of the job and
overrides any EXEC statement REGION parameters.
• REGION=0K or REGION=0M
The above mentioned parameters allows the
program to request the largest available region
size.29
TYPRUN parameter
• The TYPRUN parameter is used to specify a special type
of job processing, such as whether a job is to be held
until it is released, and whether its execution
is to be suppressed altogether
• Syntax
TYPRUN=HOLD
or
TYPRUN=SCAN
30
TYPRUN parameter
• TYPRUN=HOLD
//JOB1 JOB (A123),’RANADE’,TYPRUN=HOLD
In this example, JOB1 will be held until it is released by
the operator
• TYPRUN=SCAN
//JOB1 JOB (A123),’RANADE’,TYPRUN=SCAN
In this example, the JCL will be checked for syntax
errors
31
NOTIFY Parameter
• NOTIFY: This parameter notifies TSO session of the
completion of a job. The message to the TSO terminal
indicates whether the job was cancelled or ABENDed.
• On your JCL JOB card, use the NOTIFY parameter as follows:
– //jobname JOB (accounting info,'description',)
// NOTIFY=userid where userid is 1 through 7
alphanumeric characters and must be valid one.
– NOTE: If you are logged on at the time the job completes,
the message will appear immediately. If not, the message
will appear the next time you begin a TSO session.
32
//JOB1 JOB (A123),’RANADE’,NOTIFY=ABCDEFG
TIME parameter
• The TIME parameter specifies the maximum CPU time
allocated for a job. If a job uses less than the amount
specified, then the account is billed only for the time used.
If a job tries to use more time than the maximum specified,
the job will terminate with an S322 ABEND. The TIME
parameter has two positional subparameters, minute and
second.
 TIME=(min,sec) or TIME=min or TIME=(,sec)
 The time parameter on the job card does not override
the step parameter.
33
• TIME=NOLIMIT or TIME=1440 – Indicates that the Job
can use the processor for the unlimited period of time.(
ie : 24 hrs)
• TIME=MAXIMUM – Indicates that the Job can use the
processor for the maximum amount of time ie: 357912
mins.(248.55 days)
34
TIME parameter
• TIME parameter coded on both Job and Exec
//JOB1 JOB (A123),’LITTLE
STEVIE’,TIME=12
//STEP1 EXEC
PGM=PROGRAM1,TIME=4
//STEP2 EXEC
PGM=PROGRAM2,TIME=4
//STEP3 EXEC
PGM=PROGRAM3,TIME=4
35
TIME parameter
RESTART Parameter
• . RESTART :
– It specifies the new starting step for a Job.
• RESTART=STEP2 – starts from the STEP2
• RESTART=Procname. Stepname – starts from the a step within a cataloged
procedure
• RESTART=* - starts from the first step.
• Note: Datasets created in or after restarted step of
previous run may still exist and should be deleted first
• RESTART=Y or RESTART=N
The restart parameter is used to restart a job if it
terminates abnormally. Setting RESTART to Y results
in the job being restarted from scratch. Setting it to N
results in the job being started from the step at which
it is terminated
36
EXEC
• EXEC (execute) statement is used to name the program
to be executed or invokes cataloged or in-stream
procedure that the job is to execute
• The EXEC statement marks the beginning of each step in
a job or a procedure.
• A job can have a maximum of 255 EXEC statements
Syntax
//stepname EXEC PGM=program-name,keyword parameters
37
EXEC(contd..)
38
Example
//STEPNAME EXEC PGM=TEST1
//STEPNAME EXEC PROC
EXEC statement Fields
• Name field:
– It must be unique within the job.
– The stepname must begin in column 3.
– It can contain max of 8 alphanumeric or national
characters
– The first character must be a alphabet.
• Operation Field:
– This field consists of characters EXEC and can start in
any column.
– The word EXEC must be preceded and followed by a
blank.
39
EXEC statement Fields
• Parameter field:
EXEC statement has 2 types of parameter fields.
– Positional Parameter Field
– Keyword Parameter Field.
• Comment field:
The comments field follows the parameter field after at
least one intervening blank.
40
Positional Parameter field
• The two positional parameter of EXEC
statements are:
– PGM
• It refers to a program name
• The program name must be 8 characters long.
– PROC or Procedure name
• It refers to procedure name.
41
PGM Parameter
• PGM parameter:
– It is used to name the program that the system is
to execute.
– Coded as first parameter in EXEC statement.
• The specified program must be a load member of a
partitioned data set (PDS) used as a system library, a
private library, or a temporary library.
• PGM=program-name
– Program name specifies the member name of the
program to be executed.
42
PGM Parameter(Example)
//JOB8 JOB BOB,MSGLEVEL=(2,)
//JOBLIB DD
DSNAME=DEPT12.LIB4,DISP=SHR
//STEP1 EXEC PGM=PROGRAM1
43
PROC Parameter
• Grouping JCL statements together and giving them a
name
• PROC parameter is used to specify that the system is to
call and execute a cataloged or in-stream procedure.
• Syntax
– {PROC=procedure-name} or {procedure-name}
• procedure-name Identifies the procedure to be called and
executed:
• The name on the PROC statement that begins an in-stream
procedure. The in-stream procedure must appear earlier in
this job.
• Not more than 255 job steps can be coded in one
procedure
44
PROC Parameter(Example)
//BK EXEC OPERATE
//SP3 EXEC PROC=PAYWKRS
45
PROC - Types
• Cataloged procedure
Grouping JCL statements together, giving them
a name, and recording the name as a partitioned
data set
• In-Stream Procedure
Grouping JCL statements together and making
them a part of the JCL input stream
46
IN-STREAM PROC
• An in-stream procedure is different in that they
are not members of partitioned datasets.
• They are included in input stream of job itself.
• Rules for coding IN-STREAM PROC’s
– They must begin with PROC statement
– They end with PEND statement
– They must be coded immediately after JOB statement
& before first EXEC statement
– No more than 15 in-stream procedures can be coded
in a Job
47
IN-STREAM PROC(contd..)
//JOB1 JOB (A123),NAME
//INST1 PROC
//STEP1 EXEC PGM=PROGRAM1
//DD1 DD DSN=FILE1,DISP=SHR
//STEP2 EXEC PGM=PROGRAM1
//DD2 DD DSN=FILE2,DISP=DHR
// PEND
//STEP3 EXEC INST1
The EXEC statements between PROC & PEND statements are
not executed when they are first encountered in the Job Stream,
but they are saved as a procedure so that they can be executed
later. It is executed when the EXEC statement mentioning the
IN-STREAM procedure is encountered.
48
Cataloged procedures
• A cataloged procedure is a set of job control statements
that are grouped together, given a name and then
recorded as a member of a partitioned dataset.
• Rules for coding cataloged proc
 They must begin with PROC statement
 PEND statement is not required
 The procedure name must be unique within the
procedure library.
 Once the procedure has been created and tested, it can
be catalogued and placed inside a system or user defined
library
49
Sample JCL demonstrating the
cataloged procedurePROCEDURE
//CATALOG1 PROC
//STEP1 EXEC PGM=PROGRAM1
//DD1 DD DSN=FILE1,DISP=SHR
//STEP2 EXEC PGM=PROGRAM2
//DD2 DD DSN=FILE2,DISP=SHR
JOB calling the above PROC
//JOB1 JOB
//PROCLIB DD DSN=USER.TEST.PROCLIB,DISP=SHR
//JOBLIB DD DSN=USER.TEST.JOBLIB,DISP=SHR
//DATA2 EXEC CATALOG1
50
Catalogued vs
In stream procedure• Cataloged procedures are members of PDS and remain
there until they are deleted. In stream procedures are not
members of PDS, and exist only for the duration of the
job
• PROC statement is mandatory in both procedures
• PEND statement cannot not coded in catalogued
procedures
51
Keyword Parameters
of EXEC statement
• Must follow positional parameters.
• Can be coded in any sequence
• The keyword parameter coded in a jobstep
will apply only to that step
• Keyword parameters
– ACCT
– PARM
– ADDRSPC
– DPRTY
– COND
– REGION
– TIME
52
ACCT
• Used to supply accounting information for the job step
that it is used in
• Syntax
ACCT=account-information
• Account information can contain more than one sub
parameter
• Max number of characters that can be included in
accounting information including commas is 142
• Ex
//STEP1 EXEC PGM=PROGRAM1,ACCT=(A123,RR)
53
ADDRSPC
• ADDRSPC –(Address Space) Indicates the type of storage for the
present step.
– This parameter cannot override the specific type of storage coded in
the job statement but can override the system default.
– Syntax=ADDRSPC[procstepname]={VIRT/REAL}
• VIRT - requests virtual storage. The system can page the job
step.
• REAL - requests real storage. The system cannot page the job
step and must place the job step in central storage.
• The system uses the EXEC statement ADDRSPC parameter only
when no ADDRSPC parameter is on the job statement.
– Example
• //CAC1 EXEC PGM=A,ADDRSPC=VIRT
• //CAC2 EXEC PROC=B,ADDRSPC=REAL,REGION=8K
54
DPRTY
• Assign a dispatching priority to the job step to
determine the order in which the tasks are to be
executed
• Syntax
DRPTY=(value1, value2)
value1 => 0-15 specifies the priority of the jobstep
higher the number higher the prioirty
value2 => 0-15
DPRTY=(value1)*(16) + value2
• Exa
//JOB1 JOB (A123),’RANANDE’
//STEP1 EXEC PGM=PROGRAM1,DPRTY(12,9)
Priority in STEP1 is determined as
(12*16) + 9 = 192 + 9 = 201
55
COND Parameter
• COND: This parameter is used to test the return codes
from previous job steps in order to determine if the
present step is to be executed or bypassed.
• Syntax= COND[.procstepname]=(code, relational
operator,[step name])
If the condition is false, then the step will get executed
and if the condition is true, the step will be bypassed.
E.g. COND=(30,LE)
56
Condition Codes
• Condition codes can range from 0 to 4095.
Common condition codes are:
– 0 no errors or warnings detected
– 4 possible error (warning) detected but execution is possible.
– 8 serious error detected, likely to fail.
– 12 severe error detected, execution impossible.
– 16 terminal error, execution cannot continue
• The condition parameter coded on the JOB statement applies
to all the job steps within the job, and it overrides COND parameters
coded on the EXEC statement, if they exist.
• The relational operators that can be used are GT, GE, LT, LE, EQ &
NE.
57
COND – Examples
• Example 1
//JOB1 JOB (A123),’JERRY’,COND=(4,LT)
//STEP1 EXEC PGM=PROGRAM1
//STEP2 EXEC PGM=PROGRAM2
//STEP3 EXEC PGM=PROGRAM3
• Example 2
//JOB1 JOB (A123),’JERRY’,COND=(4,GT)
//STEP1 EXEC PGM=PROGRAM1
//STEP2 EXEC PGM=PROGRAM2
• Example 3
//JOB1 JOB (A123),’JERRY’,COND=((4,GE)),(9,LT))
//STEP1 EXEC PGM=PROGRAM1
//STEP2 EXEC PGM=PROGRAM2
58
COND in EXEC statement
• The COND parameter coded on the EXEC statement applies
only to the step that it is coded in. The job step is executed or
bypassed depending upon the condition codes issues by one
or more prior job steps
• Syntax
COND=(comparison-code,condition,stepname,ONLY)
• Stepname : specifies the name of the preceding step whose
return code is to be checked.
• If COND=EVEN executes the Jobstep whether or not the
previous step has abended.
• COND=ONLY is used for steps that perform recovery
processing that should be invoked only in the event of an
abend. It helps to execute the Jobstep only if a previous step
has abended.
59
COND – Examples
• Example 1
//JOB1 JOB (A123),’JERRY’
//STEP1 EXEC PGM=PROGRAM1
//STEP2 EXEC PGM=PROGRAM2,COND=(8,EQ,STEP1)
• Example 2
//JOB1 JOB (A123),’JERRY’
//STEP1 EXEC PGM=PROGRAM1
//STEP2 EXEC PGM=PROGRAM2,COND=(0,LT)
• Example 3
//JOB1 JOB (A123),’JERRY’
//STEP1 EXEC PGM=PROGRAM1
//STEP2 EXEC PGM=PROGRAM2
//STEP3 EXEC PGM=PROGRAM3,COND=(8,GE),(80,LE STEP1)
60
COND – Examples
61
 Example 4
//JOB1 JOB (A123),’JERRY’
//STEP1 EXEC PGM=PROGRAM1
//STEP2 EXEC PGM=PROGRAM2,COND=EVEN
 Example 5
//JOB1 JOB (A123),’JERRY’
//STEP1 EXEC PGM=PROGRAM1
//STEP2 EXEC PGM=PROGRAM2,COND=ONLY
PARM Parameter
• PARM : Passes control information to the job
step when the step is initiated.
• This is useful for passing runtime
information to an application program
• Syntax
PARM[procstepname]= information.
• Information can be of 100 characters.
Examples
//STEP1 EXEC PGM=PROGRAM1,PARM=‘M’
LINKAGE SECTION.
01 PARM-FIELD.
05 PARM-LENGTH PIC S9(04) COMP.
05 PARM-RUN-TYPE PIC X(01).
62
PARM Parameter(Examples)
• The system passes P1,123,P2=5 to the processing
program named APG22.
RUN3 EXEC PGM=APG22,PARM='P1,123,P2=5‘
• The system passes MT5 to the first step of the procedure
named PROC81. If PROC81 contains more steps and
their EXEC statements contain PARM parameters, the
system nullifies those PARM parameters.
ABCDEF EXEC PROC81,PARM=MT5
63
REGION Parameter
• Region
– This parameter is used to specify the amount of central or
virtual storage that the steps requires(inclusive of the
storage for all the programs in the step to be executed.)
• Syntax:
– REGION [.procstepname ]={valueK}
{valueM}
– valueK Specifies the required storage in kilobytes
– valueM Specifies the required storage in megabytes
– A JOB statement REGION parameter applies to all steps of
the job and overrides any EXEC statement REGION
parameters.
64
Examples
• Example
• //MKBOYLE EXEC
PROC=A,ADDRSPC=REAL,REGION=40
K
• //STP6 EXEC
PGM=CONT,REGION=120K
65
Time Parameter
• TIME parameter is used to specify the maximum
amount of time that a job step may use the
processor or to find out through messages how
much processor time a step used.
• You can use the TIME parameter on an EXEC
statement to increase or decrease the amount of
processor time available to a job step over the
default value.
• TIME [.procstepname ]= {([minutes ][,seconds ])}
{1440 }
{NOLIMIT }
{MAXIMUM }
66
Time Parameter(Example)
//STEP1 EXEC PGM=GRYS,TIME=(12,1 )
//FOUR EXEC PGM=JPLUS,TIME=(,3 )
//INT EXEC PGM=CALC,TIME=5
//LONG EXEC PGM=INVANL,TIME=NOLIMIT
67
DD STATEMENT
• DD (data definition) statement is used to convey information
about the data that will be read or written within Job.
• Syntax:
– //ELECSTD DD DSN=PSET.CDRS.SAS.CDRS341.ELECSTD.FLATFILE,
– // DISP=SHR
• The DD statement must immediately follow the EXEC
statement
• The DD statement consists of the characters // in columns 1
and 2 and four fields: name, operation (DD), parameter, and
comments.
• A DD statement is required for each data set.
• Each ddname should be unique within the job step.
• The ddname is 1 through 8 alphanumeric or national ($, #, @)
characters.
• The first character must be alphabetic or national ($, #, @).
• The ddname must be followed by at least one blank.68
DD Statement Fields
• Name field:
Each ddname should be unique within the job step.
• Operation Field:
The operation field consists of the characters DD and must be
preceded and followed by at least one blank. It can begin in
any column.
• Comments Field:
The comments field follows the parameter field after at least
one intervening blank.
• Parameter Field:
A DD statement has two kinds of parameters: positional and
keyword.
69
DDNAME s reserved
for system use
70
JOBLIB
SYSABEND
SYSIN
SYSOUT
Positional Parameters
of DD statements
• May be coded in the operands field.
• Positional Parameters
– *
– DATA
– DUMMY
71
Positional Parameters
of DD statements
• * specifies that data follows immediately; no keyword
parameters may follow. The data may not contain any
records beginning with // or /*.
– A cataloged or in-stream procedure cannot contain a
DD * statement.
//JOB1 JOB A100,JOHN
//STEP1 EXEC PGM=PROGRAM1
//SYSIN DD *
< Lines of data>
/*
72
Positional Parameters
of DD statements
• DATA : specifies that data follows immediately;
keyword parameters may follow the DATA positional
parameter.
• DUMMY : specifies that if the file is an output file, the
output is to be discarded. If the file is an input file, it
specifies that there is no data.
• Example
– //MYDS DD DSNAME=REPORT
– //A DD DSNAME=FILE
73
Temporary vs Permanent dataset
• A temporary data set is a data set that you create
and delete within a job. When you use DSNAME
for a temporary data set, code the name as two
ampersands (&&) followed by a character string 1
to 8 characters in length
&&dsname Specifies the name of a temporary data set.
• Example
//JOB1 JOB A123,’JOE HARRY’
//STEP1 EXEC PGM=PROGRAM1
//DATA1 DD DSN=&&TEMPDATA
• A permanent data set is not deleted after a job
completion and may be catalogued, if requested.
//JOB1 JOB A123,’JOE HARRY’
//STEP1 EXEC PGM=PROGRAM1
//DATA1 DD DSN=USER.TEST.REVENUE.FILE,DISP=SHR
74
DUMMY/NULL FILE
• Data Set Name for Dummy Data Set :
– NULLFILE
– Specifies a dummy data set. NULLFILE has the same
effect as coding the DD DUMMY parameter.
NULLFILE must be coded as a single-word
parameter.
75
Keyword Parameters
of DD statement
• Keyword parameters must follow the positional
parameters if both are coded
76
 Syntax
//ddname DD DSN=data_set_name,
DISP=(status,normal_disposition,abnormal_disposition
)
 DSN
 DISP
 UNIT
 SPACE
 DCB
 VOLUME
DISP Parameter
• Used to instruct the system as to the current status
of a data set
• It also indicates the steps to be taken with the
dataset upon successful or unsuccessful execution
of a Job
• Syntax DISP=(status,normal-disposition,abnormal-
disposition)
• status - indicates current status of dataset
– NEW – the dataset does not exist and should be created
– OLD – the dataset exists and should be allocated for exclusive use
– SHR – the dataset exists and should be allocated for shared use
– MOD – the dataset is allocated for exclusive use and is positioned at the end
of the data, so additional records may be added after last record
77
DISP Parameter
• normal-disposition –
specifies how the dataset is to disposed
upon normal execution of job
– DELETE – the dataset is deleted . If the dataset was retrieved from
catalog, it is also uncataloged
– KEEP – the dataset is retained
– CATLG – the dataset is retained and catalog entry is made
– UNCATLG – the dataset is retained but it’s catalog entry remove
– PASS – Normal disposition only. The dataset is retained for use by
a later job step
78
DISP Parameter
• abnormal-disposition –
specifies how the dataset is to be disposed
upon abnormal execution of job
– DELETE – the dataset is deleted . If the dataset was retrieved from
catalog, it is also uncataloged
– KEEP – the dataset is retained
– CATLG – the dataset is retained and catalog entry is made
– UNCATLG – the dataset is retained but it’s catalog entry remove
79
DISP Parameter
• Default values for DISP parameter
If status subparameter is omitted MVS assumes it as
NEW
If normal-disposition subparameter is omitted the
default depends on the status subparameter
If status subparameter is NEW the normal
disposition subparameter is DELETE else KEEP
If abnormal disposition subparameter is omitted it
takes whatever value specified in normal disposition
subparameter
80
DISP Parameter
 DISP=SHR
Allocates an existing dataset for shared access, normal and
abnormal disposition parameter default is KEEP
• DISP=OLD
Allocates an existing dataset for exclusive access, normal and
abnormal disposition default set to KEEP
• DISP=MOD
If dataset exists, extend it else create it. The access is exclusive,
normal and abnormal disposition default is set to KEEP
• DISP=(NEW,CATLG)
Allocates a new dataset and catalogs it, abnormal disposition
set to CATLG
81
DISP Parameter
• DISP=(OLD,DELETE)
Allocates and existing dataset and deletes it , abnormal
disposition set to DELETE
• DISP=(,KEEP,DELETE)
Allocates a new dataset and keeps it if job step ends
normally, if job step ends abnormally the dataset is
deleted
• DISP=(NEW,CATLG,DELETE)
The dataset is created, cataloged if the job step ends
normally and deletes it if job step ends abnormally
82
UNIT Parameter
• UNIT : specifies whether the dataset is to reside on disk
or tape; device can be DISK for disk datasets, TAPE for
cartridge tape datasets, or REEL for reel (round) tape
datasets.
• UNIT= [device_address]
//JOB1 JOB A123,’NAME’
//STEP1 EXEC PGM=PGM1
//DATA1 DD DSN=FILE1,
// UNIT=S04
• UNIT= [device_type]
//JOB1 JOB A123,’NAME’
//STEP1 EXEC PGM=PGM2
//DATA1 DD DSN=FILE2,
// UNIT=3390
83
UNIT Parameter
 UNIT=[device_group_name]
//JOB3 JOB A125,’NAME’
//STEP2 EXEC PGM=PGM3
//DATA2 DD DSN=FILE3,
// UNIT=SYSDA
• UNIT=[AFF=ddname]
//JOB1 JOB D13,KIRAN
//STEP1 EXEC PGM=PGM1
//NAME1 DD DSN=DATA1,
// UNIT=CART
//NAME2 DD DSN=DATA2,
// UNIT=AFF=NAME1
84
UNIT Parameter
• UNIT=[device,DEFER]
//JOB4 JOB S123,’NAME5’
//STEP2 EXEC=PGM4
//NAME DD DSN=DATA3,
// UNIT=(TAPE,,DEFER)
85
VOLUME Parameter
• VOL parameter
– Specifies the volume on which the dataset resides; name is either
a disk pack or a tape name.
– This parameter can be omitted for an existing catalogued data
set.
• VOL=SER
– This is used to request specific volumes
• //JOB1 JOB D12,’GIREESH’
• //STEP1 EXEC PGM=PGM1
• //NAME1 DD DSN=DATA1,
• // VOL=SER=23456
• VOL=REF subparameter
– This is used to specify a volume which has been previously
defined within same Job, but not in current step
– VOL=REF=*.referback
86
VOLUME Parameter
//JOB1 JOB C123,’JANNET’
//STEP1 EXEC PGM=PGM1
//DD1 DD DSN=DATA1,
// VOL=SER=VOL1
//DD2 DD DSN=DATA2,
// VOL=REF=*.STEP1.DD1
87
SPACE Parameter
• Space parameter:
– Used to specify the storage requirements on direct access devices
– Syntax SPACE=
(CYL,(primary,secondary,directory),RLSE)
– =
(TRK,(primary,secondary,directory),RLSE)
– =
(BLK,(primary,secondary,directory),RLSE)
– Primary – specifies how many units of space to allocate for
the dataset’s primary extents.
– Secondary – if the file requires space more than what is
allocated in primary extent, secondary extents can be used
to allocate upto 15 times the primary extents
– Directory – this is used only for partitioned datasets
• this is used to record the names and locations of members
created within partitioned datasets
• It should be a number that specifies how many 256-byte blocks
are to be contained in the directory of a PDS88
SPACE Parameter
• RLSE –
specifies that any unused space is to be released when
the job step is finished with the data set.
– This parameter is optional; it should be coded for
sequential data sets only.
Example
– SPACE=(TRK,(20,5),RLSE)
– The maximum space that could be allocated is: 20 +
5(15) = 95 tracks.
89
DCB Parameter
• The DCB parameter contains the information necessary to complete the
data control block.
• Syntax
DCB=(RECFM=format,LRECL=record-length,
BLKSIZE=block-size)
//DD1A DD DSNAME=EVER,
// DISP=(NEW,KEEP),
// UNIT=SYSDA,
//
DCB=(RECFM=FB,LRECL=326,BLKSIZE=23472),
// SPACE =(TRK,(20,5),RLSE)
90
DCB Parameter
• Important subparameters of DCB parameter:
• BLKSIZE : specifies the number of bytes (characters) per
block,where b is a multiple of the LRECL.
• LRECL : specifies the logical record length (n) for fixed
or variable length records; omit LRECL for records of
undefined length.
91
DCB Parameter
• RECFM : specifies the record format. Common values
for RECFM are
– U for undefined-length records,
– V or VB for variable-length or variable-blocked
records,
– F or FB for fixed-length or fixed-blocked records, and
– FA, FBA, or VBA for fixed, fixed-blocked, or variable-
blocked records with a printer control character as the
first byte of data.
92
SYSOUT Parameter
• SYSOUT :
– Specifies one character output class associated with
SYSOUT dataset
– Syntax SYSOUT=class
– If SYSOUT=* then output class specified in
MSGCLASS parameter of JOB statement is used
– Routes the system output to the class associated with
output device indicated
– class can be any alphanumeric character from A – Z,
0 – 9 or *
93
JOBLIB DD Statement
• JOBLIB statement:
– Identifies a private library that the system is to search for
the program named in each EXEC statement PGM
parameter in the job.
– Only if the system does not find the program in the private
library, does it search system libraries.
– Syntax //JOBLIB DD parameter [,parameter ]...[comments
]
• We can concatenate job libraries
• Do not include a JOBLIB DD statement in an in-stream or
cataloged procedure.
94
JOBLIB DD Statement
//JOB1 JOB A123,’BHASKAR’
//JOBLIB DD DSN=M1.TEST.LOADLIB,
// DISP=SHR
//STEP1 EXEC PGM=PGM1
//STEP2 EXEC PGM=PGM2
===============================================
=
//L140 JOB (00124,'PURGE PGM'),
//
CLASS=N,MSGCLASS=P,TIME=1440,REGION=6M
//JOBLIB DD DSN=IPHP.BT.PGMLIB,DISP=SHR
// DD DSN=IPHP.OL.PGMLIB,DISP=SHR
// DD DSN=SYS5.PROSERV.EXITS,DISP=SHR
// DD DSN=S00P.BT.PGMLIB,DISP=SHR
// DD DSN=S00P.OL.PGMLIB,DISP=SHR
95
STEPLIB DD Statement
• Use the STEPLIB DD statement to
– Syntax //STEPLIB DD parameter [,parameter
]...[comments ]
– Overriding a JOBLIB
• If the system lib is defined in a STEPLIB DD statement then
the system will ignore the JOBLIB DD statement for that
step.
96
STEPLIB DD Statement
//PAYROLL JOB BAKER,MSGLEVEL=1
//JOBLIB DD
DSNAME=LIB5.GROUP4,DISP=(OLD,PASS)
//STEP1 EXEC PROC=SNZ12
//STEP2 EXEC PGM=SNAP1
//STEPLIB DD
DSNAME=LIBRARYP,DISP=(OLD,PASS),
// UNIT=335
,VOLUME=SER=55566
//STEP3 EXEC PGM=A153
//STEP4 EXEC PGM=SNAP11
//STEPLIB DD DSNAME=*.STEP2.STEPLIB,
// DISP=(OLD,KEEP)
97
Concatenating Data Sets
• Datasets can be concatenated and perceived together as
one file by coding each applicable dataset name one after
another
• Rules for coding
– Up to 255 sequential datasets and 16 PDS files can be
concatenated together
– The LRECL value must be same for all the datasets.
– All datasets concatenated together must have the same type of
record format
– All datasets concatenated together must exist in the same type of
device
– The dataset which has the largest bulksize must be given first.
98
Concatenating Data Sets
 If tape datasets are concatenated datasets together, then
block size of the first dataset must be larger than or
equal to, that of the subsequent dataset
 A PS cannot be concatenated with PDS.
Sample JCL
//JOB1 JOB 001,’AL’
//STEP1 EXEC PFM=CONCAT1
//DATA1 DD DSN=FILE1
// DD DSN=FILE2
// DD DSN=FILE3
– Here the files FILE1,FILE2 & FILE3 are concatenated
together.
99
Referring Back of Datasets
• A referback is a reference to an earlier DD statement in
the job or in a catalogued or in-stream procedure called
by a job step.
• A referback is in the form of *.ddname or
*.stepname.ddname or
*stepname.procstepname.ddname.
//INPUT DD DSN=*.STEP1.OUTPUT
//OUTPUT DD DSN=CLASS.FILE,DCB=*STEP1.OUT1
100
JCLLIB statement
• JCLLIB statement is used to identify the names of the
private libraries that the system uses for the job.
• Syntax
• //[name ]JCLLIB ORDER=(library [,library
]...)[comments ]
• The private libraries that you specify on the JCLLIB
statement must comply with following rules:
– The private library must be cataloged.
– The private library must be accessible to the job.
• JCLLIB statement should be coded after JOB statement
and before first exec statement.
• //JCLLIB DD DSN=MMA2.PROCLIB,DISP=SHR
101
Utilities
• IEBGENER
Copy sequential files
• IEBCOPY
Copy partitioned data sets
Compress partitioned data sets
• IEFBR14
Null program commonly used for creation, deletion or
updating a dataset with out having to execute any
specific datasets
102
GDG – Generation Data Groups
• These are groups of datasets that are related to each
other chronologically and functionally
• Index
– NAME
– LIMIT
– EMPTY/NOEMPTY
– SCRATCH/NOSCRATH
103
How to define a GDG index
//JOB1 JOB (A123),’TEST JOB’
//STEP1 EXEC PGM=IDCAMS
//SYSIN DD *
DEFINE GDG(NAME(FINANCES.MONTHLY)-
LIMIT(5) -
NOEMPTY -
SCRATCH)
/*
//
104
How to define a GDG index
//JOB1 JOB (A123),’TEST JOB’
//STEP1 EXEC PGM=IDCAMS
//SYSIN DD *
DEFINE GDG(NAME(FINANCES.MONTHLY)-
LIMIT(5) -
NOEMPTY -
SCRATCH)
/*
//
105
Creating a GDG dataset
//JOB1 JOB (A123),’CREATE GDG DATASET’
//STEP1 EXEC PGM=ABCDEF
//INFILE DD DSN=TEST.FILE1,DISP=SHR
//OUTFILE DD DSN=FINANCES.MONTHLY(+1),
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(100,50),RLSE),
// DCB=(MODEL.DCB,RECFM=FB,
// LRECL=80,BLKSIZE=800)
106
Deleting a GDG
Deleting a GDG dataset
//JOB1 JOB (A123),’TEST JOB’
//STEP1 EXEC PGM=IEFBR14
//DEL1 DD DSN=FINANCES.MONTHLY(0),
// DISP=(OLD,DELETE,DELETE)
Deleting a GDG INDEX
//JOB1 JOB (A123),’TEST JOB’
//STEP1 EXEC PGM=IDCAMS
//SYSIN DD *
DELETE(FINANCES.MONTHLY)GDG
/*
107
Deleting a GDG
Deleting a GDG INDEX Using FORCE
//JOB1 JOB (A123),’TEST JOB’
//STEP1 EXEC PGM=IDCAMS
//SYSIN DD *
DELETE(FINANCES.MONTHLY)GDG FORCE
/*
108
Utilities – SORT
//SORT1 JOB (A123),’TEST SORT JOB’
//STEP1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN DD DSN=TEST.FILE,
// DISP=SHR
//SORTOUT DD DSN=TEST.FILE.SORTED,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA
// SPACE=(CYL,(100,50),RLSE),
// DCB=(RECFM=F,LECL=80,BLKSIZE=800)
//SORTWK01 DD UNIT=SYSDA,
// SPACE =(CYL,(100,50),RLSE),
//SORTWK02 DD UNIT=SYSDA,
// SPACE =(CYL,(100,50),RLSE),
//SYSIN DD *
SORT FIELDS=(2,5,CH,A)
/*
//
109
Utilities – SORT
 TO COPY ALL THE RECORDS FROM INPUT FILE TO OUTPUT FILE
SORT FIELDS=COPY
 TO COPY THOSE RECORDS WHICH SATISFY A PARTICULAR
CONDITION.
INCLUDE COND=(38,10,CH,EQ,C'57071509',OR,36,10,CH,EQ,C' 57105779')
 TO OMIT THOSE RECORDS WHICH SATISFY A PARTICULAR
CONDITION.
OMIT COND=(19,1,CH,EQ,C'S',OR,19,1,CH,EQ,C'S')
 TO SKIP CERTAIN NO OF RECORDS
SORT FIELDS=COPY,SKIPREC=1000
 TO STOP AFTER COPYING CERTAIN NO OF RECORDS
SORT FIELDS=COPY,STOPAFT=5000
110
Utilities – SORT
 SKIPREC AND STOPREC CAN BE USED IN COMBINATION
SORT FIELDS=COPY,SKIPREC=1000,STOPAFT=5000
111
Utilities – MERGE
//SORT1 JOB (A123),’TEST SORT JOB’
//STEP1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN01 DD DSN=TEST.FILE1,DISP=SHR
//SORTIN02 DD DSN=TEST.FILE1,DISP=SHR
//SORTIN03 DD DSN=TEST.FILE1,DISP=SHR
//OUTFILE DD DSN=TEST.FILE.SORTED,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(100,50),RLSE),
// DCB=(RECFM=F,LECL=80,BLKSIZE=800)
//SYSIN DD *
MERGE FIELDS=(2,5,CH,A)
/*
//
112
Common Abend Codes
Code Description
SOC4 Subscript being out of range
SOC7 Caused by bad data, which the program was unable
to detect
S222 Caused by the job being cancelled by the operator
SB37 Caused by lack of sufficient secondary space
SE37 Caused by lack of space for PDS
SD37 Caused by lack of sufficient primary space
113
Utilities – MERGE
//SORT1 JOB (A123),’TEST SORT JOB’
//STEP1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN01 DD DSN=TEST.FILE1,DISP=SHR
//SORTIN02 DD DSN=TEST.FILE1,DISP=SHR
//SORTIN03 DD DSN=TEST.FILE1,DISP=SHR
//OUTFILE DD DSN=TEST.FILE.SORTED,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(100,50),RLSE),
// DCB=(RECFM=F,LECL=80,BLKSIZE=800)
//SYSIN DD *
MERGE FIELDS=(2,5,CH,A)
/*
//
114
Utilities – MERGE
//SORT1 JOB (A123),’TEST SORT JOB’
//STEP1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN01 DD DSN=TEST.FILE1,DISP=SHR
//SORTIN02 DD DSN=TEST.FILE1,DISP=SHR
//SORTIN03 DD DSN=TEST.FILE1,DISP=SHR
//OUTFILE DD DSN=TEST.FILE.SORTED,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(100,50),RLSE),
// DCB=(RECFM=F,LECL=80,BLKSIZE=800)
//SYSIN DD *
MERGE FIELDS=(2,5,A,CH)
/*
//
115
Utilities – MERGE
//SORT1 JOB (A123),’TEST SORT JOB’
//STEP1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN01 DD DSN=TEST.FILE1,DISP=SHR
//SORTIN02 DD DSN=TEST.FILE1,DISP=SHR
//SORTIN03 DD DSN=TEST.FILE1,DISP=SHR
//OUTFILE DD DSN=TEST.FILE.SORTED,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(100,50),RLSE),
// DCB=(RECFM=F,LECL=80,BLKSIZE=800)
//SYSIN DD *
MERGE FIELDS=(2,5,A,CH)
/*
//
116
Skillwise JCL

More Related Content

What's hot

Mainframe JCL Part - 1
Mainframe JCL Part - 1Mainframe JCL Part - 1
Mainframe JCL Part - 1
janaki ram
 
Top jcl interview questions and answers job interview tips
Top jcl interview questions and answers job interview tipsTop jcl interview questions and answers job interview tips
Top jcl interview questions and answers job interview tips
jcltutorial
 
Introduction of ISPF
Introduction of ISPFIntroduction of ISPF
Introduction of ISPF
Anil Bharti
 
Job Control Language
Job Control LanguageJob Control Language
Job Control Language
kapa rohit
 
Jcl tutor
Jcl tutorJcl tutor
Jcl tutorshivas
 
IBM Utilities
IBM UtilitiesIBM Utilities
IBM Utilities
Anil Bharti
 
Mvs commands
Mvs commandsMvs commands
ALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARMALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARM
IBM
 
Jcl interview questions
Jcl interview questionsJcl interview questions
Jcl interview questionsganjigirish
 
IBM DB2 for z/OS Administration Basics
IBM DB2 for z/OS Administration BasicsIBM DB2 for z/OS Administration Basics
IBM DB2 for z/OS Administration Basics
IBM
 
Db2
Db2Db2
Db2
yboren
 
20 DFSORT Tricks For Zos Users - Interview Questions
20 DFSORT Tricks For Zos Users - Interview Questions20 DFSORT Tricks For Zos Users - Interview Questions
20 DFSORT Tricks For Zos Users - Interview Questions
Srinimf-Slides
 
IBM SMP/E
IBM SMP/EIBM SMP/E
DB2 for z/OS - Starter's guide to memory monitoring and control
DB2 for z/OS - Starter's guide to memory monitoring and controlDB2 for z/OS - Starter's guide to memory monitoring and control
DB2 for z/OS - Starter's guide to memory monitoring and control
Florence Dubois
 
A First Look at the DB2 10 DSNZPARM Changes
A First Look at the DB2 10 DSNZPARM ChangesA First Look at the DB2 10 DSNZPARM Changes
A First Look at the DB2 10 DSNZPARM ChangesWillie Favero
 
Vsam
VsamVsam
JCL FOR FRESHERS
JCL FOR FRESHERSJCL FOR FRESHERS
JCL FOR FRESHERS
Nirmal Pati
 
Vsam presentation PPT
Vsam presentation PPTVsam presentation PPT
Vsam presentation PPTAnil Polsani
 

What's hot (20)

Mainframe JCL Part - 1
Mainframe JCL Part - 1Mainframe JCL Part - 1
Mainframe JCL Part - 1
 
Top jcl interview questions and answers job interview tips
Top jcl interview questions and answers job interview tipsTop jcl interview questions and answers job interview tips
Top jcl interview questions and answers job interview tips
 
Tso and ispf
Tso and ispfTso and ispf
Tso and ispf
 
Introduction of ISPF
Introduction of ISPFIntroduction of ISPF
Introduction of ISPF
 
Job Control Language
Job Control LanguageJob Control Language
Job Control Language
 
Jcl tutor
Jcl tutorJcl tutor
Jcl tutor
 
IBM Utilities
IBM UtilitiesIBM Utilities
IBM Utilities
 
Mvs commands
Mvs commandsMvs commands
Mvs commands
 
ALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARMALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARM
 
Jcl interview questions
Jcl interview questionsJcl interview questions
Jcl interview questions
 
Smpe
SmpeSmpe
Smpe
 
IBM DB2 for z/OS Administration Basics
IBM DB2 for z/OS Administration BasicsIBM DB2 for z/OS Administration Basics
IBM DB2 for z/OS Administration Basics
 
Db2
Db2Db2
Db2
 
20 DFSORT Tricks For Zos Users - Interview Questions
20 DFSORT Tricks For Zos Users - Interview Questions20 DFSORT Tricks For Zos Users - Interview Questions
20 DFSORT Tricks For Zos Users - Interview Questions
 
IBM SMP/E
IBM SMP/EIBM SMP/E
IBM SMP/E
 
DB2 for z/OS - Starter's guide to memory monitoring and control
DB2 for z/OS - Starter's guide to memory monitoring and controlDB2 for z/OS - Starter's guide to memory monitoring and control
DB2 for z/OS - Starter's guide to memory monitoring and control
 
A First Look at the DB2 10 DSNZPARM Changes
A First Look at the DB2 10 DSNZPARM ChangesA First Look at the DB2 10 DSNZPARM Changes
A First Look at the DB2 10 DSNZPARM Changes
 
Vsam
VsamVsam
Vsam
 
JCL FOR FRESHERS
JCL FOR FRESHERSJCL FOR FRESHERS
JCL FOR FRESHERS
 
Vsam presentation PPT
Vsam presentation PPTVsam presentation PPT
Vsam presentation PPT
 

Viewers also liked

Basic concept of jcl
Basic concept of jclBasic concept of jcl
Basic concept of jcl
Anil Bharti
 
DB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellDB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in Nutshell
Cuneyt Goksu
 
Exec Statement
Exec StatementExec Statement
Exec Statement
tomshepard19
 
SKILLWISE - OOPS CONCEPT
SKILLWISE - OOPS CONCEPTSKILLWISE - OOPS CONCEPT
SKILLWISE - OOPS CONCEPT
Skillwise Group
 
SKILLWISE-DB2 DBA
SKILLWISE-DB2 DBASKILLWISE-DB2 DBA
SKILLWISE-DB2 DBA
Skillwise Group
 
online training for IBM DB2 LUW UDB DBA
online training for IBM DB2 LUW UDB DBAonline training for IBM DB2 LUW UDB DBA
online training for IBM DB2 LUW UDB DBA
Ravikumar Nandigam
 
DB2 V8 - For Developers Only
DB2 V8 -  For Developers OnlyDB2 V8 -  For Developers Only
DB2 V8 - For Developers OnlyCraig Mullins
 
My cool new Slideshow!
My cool new Slideshow!My cool new Slideshow!
My cool new Slideshow!Anas Mohammed
 
DB2 Interview Questions - Part 1
DB2 Interview Questions - Part 1DB2 Interview Questions - Part 1
DB2 Interview Questions - Part 1
ReKruiTIn.com
 
Presentation db2 connections to db2 for z os
Presentation   db2 connections to db2 for z osPresentation   db2 connections to db2 for z os
Presentation db2 connections to db2 for z os
xKinAnx
 
Sneak Peek into the New ChangeMan ZMF Release
Sneak Peek into the New ChangeMan ZMF ReleaseSneak Peek into the New ChangeMan ZMF Release
Sneak Peek into the New ChangeMan ZMF Release
Serena Software
 
Mainframe – CONTROL-M
Mainframe – CONTROL-MMainframe – CONTROL-M
Mainframe – CONTROL-M
Srinimf-Slides
 

Viewers also liked (15)

Basic concept of jcl
Basic concept of jclBasic concept of jcl
Basic concept of jcl
 
Jcl
JclJcl
Jcl
 
DB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellDB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in Nutshell
 
Exec Statement
Exec StatementExec Statement
Exec Statement
 
SKILLWISE - OOPS CONCEPT
SKILLWISE - OOPS CONCEPTSKILLWISE - OOPS CONCEPT
SKILLWISE - OOPS CONCEPT
 
SKILLWISE-DB2 DBA
SKILLWISE-DB2 DBASKILLWISE-DB2 DBA
SKILLWISE-DB2 DBA
 
online training for IBM DB2 LUW UDB DBA
online training for IBM DB2 LUW UDB DBAonline training for IBM DB2 LUW UDB DBA
online training for IBM DB2 LUW UDB DBA
 
Spufi
SpufiSpufi
Spufi
 
DB2 V8 - For Developers Only
DB2 V8 -  For Developers OnlyDB2 V8 -  For Developers Only
DB2 V8 - For Developers Only
 
My cool new Slideshow!
My cool new Slideshow!My cool new Slideshow!
My cool new Slideshow!
 
DB2 Interview Questions - Part 1
DB2 Interview Questions - Part 1DB2 Interview Questions - Part 1
DB2 Interview Questions - Part 1
 
Presentation db2 connections to db2 for z os
Presentation   db2 connections to db2 for z osPresentation   db2 connections to db2 for z os
Presentation db2 connections to db2 for z os
 
An Hour of DB2 Tips
An Hour of DB2 TipsAn Hour of DB2 Tips
An Hour of DB2 Tips
 
Sneak Peek into the New ChangeMan ZMF Release
Sneak Peek into the New ChangeMan ZMF ReleaseSneak Peek into the New ChangeMan ZMF Release
Sneak Peek into the New ChangeMan ZMF Release
 
Mainframe – CONTROL-M
Mainframe – CONTROL-MMainframe – CONTROL-M
Mainframe – CONTROL-M
 

Similar to Skillwise JCL

Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ OracleUnderstanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Guatemala User Group
 
SQL Macros - Game Changing Feature for SQL Developers?
SQL Macros - Game Changing Feature for SQL Developers?SQL Macros - Game Changing Feature for SQL Developers?
SQL Macros - Game Changing Feature for SQL Developers?
Andrej Pashchenko
 
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docxMSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
gilpinleeanna
 
CP Handout#1
CP Handout#1CP Handout#1
CP Handout#1
trupti1976
 
Design of Real - Time Operating System Using Keil µVision Ide
Design of Real - Time Operating System Using Keil µVision IdeDesign of Real - Time Operating System Using Keil µVision Ide
Design of Real - Time Operating System Using Keil µVision Ide
iosrjce
 
12c SQL Plan Directives
12c SQL Plan Directives12c SQL Plan Directives
12c SQL Plan Directives
Franck Pachot
 
SQL Performance Tuning and New Features in Oracle 19c
SQL Performance Tuning and New Features in Oracle 19cSQL Performance Tuning and New Features in Oracle 19c
SQL Performance Tuning and New Features in Oracle 19c
RachelBarker26
 
The Monthly Journal of the American Hacker
The Monthly Journal of the American HackerThe Monthly Journal of the American Hacker
The Monthly Journal of the American Hacker
zubeditufail
 
Modul PLC Programming.pdf
Modul PLC Programming.pdfModul PLC Programming.pdf
Modul PLC Programming.pdf
MOCHAMAD RIZKY BINTANG ARDYANSYAH
 
Plc tg fi
Plc tg fiPlc tg fi
Plc tg fi
linhktdk
 
Problem-solving and design 1.pptx
Problem-solving and design 1.pptxProblem-solving and design 1.pptx
Problem-solving and design 1.pptx
TadiwaMawere
 
Alu design-project
Alu design-projectAlu design-project
Alu design-projectalphankg1
 
PLSQLmy Updated (1).pptx
PLSQLmy Updated (1).pptxPLSQLmy Updated (1).pptx
PLSQLmy Updated (1).pptx
vamsiyadav39
 
Mod02 compilers
Mod02 compilersMod02 compilers
Mod02 compilers
Peter Haase
 
Web Developer make the most out of your Database !
Web Developer make the most out of your Database !Web Developer make the most out of your Database !
Web Developer make the most out of your Database !
Jean-Marc Desvaux
 

Similar to Skillwise JCL (20)

Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ OracleUnderstanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
 
Pl sql using_xml
Pl sql using_xmlPl sql using_xml
Pl sql using_xml
 
SQL Macros - Game Changing Feature for SQL Developers?
SQL Macros - Game Changing Feature for SQL Developers?SQL Macros - Game Changing Feature for SQL Developers?
SQL Macros - Game Changing Feature for SQL Developers?
 
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docxMSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
 
CP Handout#1
CP Handout#1CP Handout#1
CP Handout#1
 
CE150--Hongyi Huang
CE150--Hongyi HuangCE150--Hongyi Huang
CE150--Hongyi Huang
 
Design of Real - Time Operating System Using Keil µVision Ide
Design of Real - Time Operating System Using Keil µVision IdeDesign of Real - Time Operating System Using Keil µVision Ide
Design of Real - Time Operating System Using Keil µVision Ide
 
Csd01
Csd01Csd01
Csd01
 
12c SQL Plan Directives
12c SQL Plan Directives12c SQL Plan Directives
12c SQL Plan Directives
 
SQL Performance Tuning and New Features in Oracle 19c
SQL Performance Tuning and New Features in Oracle 19cSQL Performance Tuning and New Features in Oracle 19c
SQL Performance Tuning and New Features in Oracle 19c
 
The Monthly Journal of the American Hacker
The Monthly Journal of the American HackerThe Monthly Journal of the American Hacker
The Monthly Journal of the American Hacker
 
Modul PLC Programming.pdf
Modul PLC Programming.pdfModul PLC Programming.pdf
Modul PLC Programming.pdf
 
Plc tg fi
Plc tg fiPlc tg fi
Plc tg fi
 
Problem-solving and design 1.pptx
Problem-solving and design 1.pptxProblem-solving and design 1.pptx
Problem-solving and design 1.pptx
 
Alu design-project
Alu design-projectAlu design-project
Alu design-project
 
PLSQLmy Updated (1).pptx
PLSQLmy Updated (1).pptxPLSQLmy Updated (1).pptx
PLSQLmy Updated (1).pptx
 
Mod02 compilers
Mod02 compilersMod02 compilers
Mod02 compilers
 
Unit 3
Unit 3Unit 3
Unit 3
 
Web Developer make the most out of your Database !
Web Developer make the most out of your Database !Web Developer make the most out of your Database !
Web Developer make the most out of your Database !
 
Function and types
Function  and typesFunction  and types
Function and types
 

More from Skillwise Group

Skillwise Consulting New updated
Skillwise Consulting New updatedSkillwise Consulting New updated
Skillwise Consulting New updated
Skillwise Group
 
Email Etiquette
Email Etiquette Email Etiquette
Email Etiquette
Skillwise Group
 
Healthcare profile
Healthcare profileHealthcare profile
Healthcare profile
Skillwise Group
 
Manufacturing courses
Manufacturing coursesManufacturing courses
Manufacturing courses
Skillwise Group
 
Retailing & logistics profile
Retailing & logistics profileRetailing & logistics profile
Retailing & logistics profile
Skillwise Group
 
Skillwise orientation
Skillwise orientationSkillwise orientation
Skillwise orientation
Skillwise Group
 
Overview- Skillwise Consulting
Overview- Skillwise Consulting Overview- Skillwise Consulting
Overview- Skillwise Consulting
Skillwise Group
 
Skillwise corporate presentation
Skillwise corporate presentationSkillwise corporate presentation
Skillwise corporate presentation
Skillwise Group
 
Skillwise Profile
Skillwise ProfileSkillwise Profile
Skillwise Profile
Skillwise Group
 
Skillwise Softskill Training Workshop
Skillwise Softskill Training WorkshopSkillwise Softskill Training Workshop
Skillwise Softskill Training Workshop
Skillwise Group
 
Skillwise Insurance profile
Skillwise Insurance profileSkillwise Insurance profile
Skillwise Insurance profile
Skillwise Group
 
Skillwise Train and Hire Services
Skillwise Train and Hire ServicesSkillwise Train and Hire Services
Skillwise Train and Hire Services
Skillwise Group
 
Skillwise Digital Technology
Skillwise Digital Technology Skillwise Digital Technology
Skillwise Digital Technology
Skillwise Group
 
Skillwise Boot Camp Training
Skillwise Boot Camp TrainingSkillwise Boot Camp Training
Skillwise Boot Camp Training
Skillwise Group
 
Skillwise Academy Profile
Skillwise Academy ProfileSkillwise Academy Profile
Skillwise Academy Profile
Skillwise Group
 
Skillwise Overview
Skillwise OverviewSkillwise Overview
Skillwise Overview
Skillwise Group
 
Skillwise - Business writing
Skillwise - Business writing Skillwise - Business writing
Skillwise - Business writing
Skillwise Group
 
Imc.ppt
Imc.pptImc.ppt
Skillwise cics part 1
Skillwise cics part 1Skillwise cics part 1
Skillwise cics part 1
Skillwise Group
 
Skillwise AML
Skillwise AMLSkillwise AML
Skillwise AML
Skillwise Group
 

More from Skillwise Group (20)

Skillwise Consulting New updated
Skillwise Consulting New updatedSkillwise Consulting New updated
Skillwise Consulting New updated
 
Email Etiquette
Email Etiquette Email Etiquette
Email Etiquette
 
Healthcare profile
Healthcare profileHealthcare profile
Healthcare profile
 
Manufacturing courses
Manufacturing coursesManufacturing courses
Manufacturing courses
 
Retailing & logistics profile
Retailing & logistics profileRetailing & logistics profile
Retailing & logistics profile
 
Skillwise orientation
Skillwise orientationSkillwise orientation
Skillwise orientation
 
Overview- Skillwise Consulting
Overview- Skillwise Consulting Overview- Skillwise Consulting
Overview- Skillwise Consulting
 
Skillwise corporate presentation
Skillwise corporate presentationSkillwise corporate presentation
Skillwise corporate presentation
 
Skillwise Profile
Skillwise ProfileSkillwise Profile
Skillwise Profile
 
Skillwise Softskill Training Workshop
Skillwise Softskill Training WorkshopSkillwise Softskill Training Workshop
Skillwise Softskill Training Workshop
 
Skillwise Insurance profile
Skillwise Insurance profileSkillwise Insurance profile
Skillwise Insurance profile
 
Skillwise Train and Hire Services
Skillwise Train and Hire ServicesSkillwise Train and Hire Services
Skillwise Train and Hire Services
 
Skillwise Digital Technology
Skillwise Digital Technology Skillwise Digital Technology
Skillwise Digital Technology
 
Skillwise Boot Camp Training
Skillwise Boot Camp TrainingSkillwise Boot Camp Training
Skillwise Boot Camp Training
 
Skillwise Academy Profile
Skillwise Academy ProfileSkillwise Academy Profile
Skillwise Academy Profile
 
Skillwise Overview
Skillwise OverviewSkillwise Overview
Skillwise Overview
 
Skillwise - Business writing
Skillwise - Business writing Skillwise - Business writing
Skillwise - Business writing
 
Imc.ppt
Imc.pptImc.ppt
Imc.ppt
 
Skillwise cics part 1
Skillwise cics part 1Skillwise cics part 1
Skillwise cics part 1
 
Skillwise AML
Skillwise AMLSkillwise AML
Skillwise AML
 

Recently uploaded

GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 

Recently uploaded (20)

GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 

Skillwise JCL

  • 3. Course Outline Introduction - Job Control Language JOB Statements EXEC Statements DD Statements GDG and some commonly used utilities Commonly Occurring Abend Codes Q & A 3
  • 4. What is JCL ? • What is a JCL? – Job Control Language - means of communication between an application program and the computer's operating system (the IBM OS 390 MVS Operating System). • What Can I Do With JCL? – Submit a job to the operating system – Request resources needed to run the job – Control the system’s processing of the job • What is needed to Write JCL? – Access to the IBM mainframe computer – A valid TSO user ID 4
  • 5. What is a Job? • Job is something that you want to accomplish with the aid of a mainframe • Examples  Copy a data set  Execute a program  Process multiple job steps. 5
  • 6. Functions of JCL • It identifies your Job to the system. • It describes the Job’s requirements. • It directs the execution of the program(s) • It describes the devices(readers,printers etc.) and resources(datasets) needed by the program(s). • JCL statements provide information that the operating system needs to execute a job 6
  • 7. JCL Statement Format • Job Control Language (JCL) is very precise. • It has specific rules of grammar and syntax that must be followed. • Must not contain any irregularities. • The JCL will be rejected if it contains typographical errors (including extra or missing spaces or commas), fields in the wrong order, etc. • JCL and JES2 statements (except for comments) must not contain lower case letters. 7
  • 8. JCL Statement Types • JOB STATEMENT : Provides accounting information as well as job name to each job. • EXEC STATEMENT: Calls specified program or procedure for execution. • DD STATEMENT: Provides details about the various resources used by the program. 8
  • 9. JCL Statement Types • COMMENT STATEMENT: The comment statement contains comments. It is used primarily to document a program and its resource requirements. • DELIMITER STATEMENT: The delimiter statement signifies the end of a job step or end of data. • NULL STATEMENT: The null statement signifies the end of a job. 9
  • 10. JCL Statement Fields  Each Job Statement is logically divided into:  Identifier Field  Name Field  Operation Field  Parameter Field  Comment Field 10
  • 11. JCL Statement Fields(contd..) //L110 JOB (00124,'MONTHLY STATISTICS'), // CLASS=P,MSGCLASS=P,REGION=0M //LST11008 EXEC PGM=TEST //LST11018 EXEC LST11018,ENV=IPHP,UNITCT=CART,CTL=IPHP, // UNITDA=PRODDA //SYSIN DD * //SYSPRINT DD SYSOUT=* 11 Identifier field Name field Operation field Parameter field
  • 12. JCL Statement Fields – Identifier Field  Indicates to the system that a statement is a JCL statement rather than data.  The identifier field is located in columns 1, 2 and 3  Indicates if it is a JCL statement , delimiter statement or a comment statement  // indicates it is a JCL statement  /* indicates it is a delimiter statement  //* indicates it is a Comment statement 12 //JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
  • 13. JCL Statement Fields – Name Field  The name field associates a name with the JCL statement so that the system can refer to it.  For JCL statements, code the name as follows:  The name must begin in column 3.  The name is 1 through 8 alphanumeric or special ($, #, @) characters.  The first character must be an alphabet or special character ($, #, @).  The name must be followed by at least one blank. 13 //JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
  • 14. JCL Statement Fields - Operation Field  The operation field specifies the statement function.  Code the operation field as follows: The operation field follows the name field. The operation field must be preceded and followed by at least one blank. The Operation field is required and begins anywhere in columns 4 through 15. 14 //JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
  • 15. JCL Statement Fields – Parameter Field • The parameter field, also sometimes referred to as the operand field • The Operand Field provides details and instructions necessary for the system to perform the job. It is composed of one or more parameters, separated by commas. • There are positional parameters, which appear in a specific order, and keyword parameters, which are of the form KEYWORD=VALUE. 15 //JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
  • 16. JCL Statement Fields – Comments Field  The comments field contains any information you seem helpful when you code the control statement. Code the comments field as follows:  The comments field follows the parameter field.  The comments field must be preceded by at least one blank and ends in column 71.  You can code comments after the parameter field even though you continue the parameter field on a subsequent statement 16 //STEP001 EXEC PGM=PROGRAM1 => NEW PGM //INPUT1 DD DSN=INFILE,DISP=SHR //REPORT1 DD SYSOUT=*
  • 17. JOB statement • The Job statement names a job, supplies accounting and billing information, and supplies options to control processing of the job. • The JOB statement is always your first JCL statement. It signals the beginning of a job and the end of any previous job and assigns a name to your job. //L116 JOB (00124,‘PROGRAMMER NAME'), // CLASS=J,MSGCLASS=Z,REGION=0M,MSGLEVEL=(0,0), // NOTIFY=SYSID,TIME=(2,30),TYPRUN=SCAN,RESTART=STEP2 • The JOB card requires – the Job name, which appears on the header page of your output, – the word JOB in the Operation field, – the accounting information for your job, – the programmer's name. 17
  • 18. Positional Parameters on the Job Card  Positional parameter must precede the keyword parameters. Job Accounting information parameter  identifies the account number which will be billed for the CPU time utilized on the mainframe Syntax (account-number,additional-accounting-information) //JOB1 JOB (A189,DEPT1)
  • 19. Positional Parameters on the Job Card  Programmer-Name parameter Name Information related to the job being submitted The PROGRAMMER name can be a maximum of 20 characters. //JOB1 JOB (A189),SUNIL
  • 20. Keyword Parameters on the Job Card • Must follow positional parameter • Can be coded in any order  CLASS  PRTY  MSGCLASS  MSGLEVEL  REGION  TYPRUN 20
  • 21. CLASS parameter  The CLASS parameter is used to assign your job to a job processing class. The CLASS parameter specifies the class in which the job will be run and it depends on the characteristics of Job.  CLASS=n where n varies from A-Z or from 0-9.  If one does not specify the CLASS parameter the installation establishes a default CLASS. 21 //JOB1 JOB (A189),SUNIL,CLASS=K
  • 22. PRTY parameter  The PRTY parameter is related to the CLASS parameter  It assigns priority to jobs which belong to the same class  PRTY=priority  Priority is a number between 0 to 14, or 0 to 15  The job with a higher number takes precedence over a job with a lower number A job with priority 10 will run before a job with priority 3. 22 //JOB1 JOB (A189),SUNIL,CLASS=8,PRTY=6 //JOB2 JOB (B189),SUNIL,CLASS=8,PRTY=9
  • 23.  The MSGCLASS Parameter  The MSGCLASS parameter assigns the job log for a job to a particular sysout output class. MSGCLASS specifies the default print class for all output data sets generated by the job.  MSGCLASS = n, where n is any value from A – Z or from 0 – 9. If omitted, the default MSGCLASS=A (Printer) is set by the installation. The job log contains the JOB statement, the JCL for the job, JCL processing messages, in-stream and cataloged procedure statements, and JES2 messages and MVS operator messages, if any. 23 MSGCLASS parameter //JOB1 JOB (A189),SUNIL,CLASS=8,PRTY=6,MSGCLASS=A
  • 24. MSGLEVEL Parameter  The MSGLEVEL parameter is used to controls the amount of system messages generated for a Job.  The following job log elements can be controlled: – Log messages indicating the job name, user name etc routed to output device – JCL statements comprising that job are output – Messages related to execution of the job will be output – The output of the program being executed is output 24 MSGLEVEL=(statements, messages) //JOB1 JOB (A189),MSGLEVEL=(1,1)
  • 25. • Values for 'statements' in the MSGLEVEL keyword can be one of these: – 0 – Print only JOB statements – 1 – Print all JCL and JES statements & messages – 2 – Print only input JCL statements • Values for 'messages' in the MSGLEVEL keyword can be one of these: – 0 – will result in only allocation/termination messages being output if the job terminates abnormally The system prints only JCL messages. It prints JES and operator messages only if the job abnormally terminates, and prints SMS messages only if SMS fails the job. – 1 – will result in all allocation/termination message being output regardless of whether the job terminates normally or abnormally • Default value is (1,1) 25 MSGLEVEL Parameter
  • 26. The JCL output for a batch job or any piece of work handled by JES2 or JES3 is a collection of three data sets. These three data sets (in the order they appear in the output) are: JES JOB LOG (JESMSGLG) STATEMENT IMAGES (JESJCL) SYSTEM MESSAGES (JESYSMSG) Statements Indicates which job control statements the system is to print in the statement images portion of the JCL output. This subparameter is one of the following numbers: 0 : The system prints the JOB statement and all comments and JCL statements up to the first EXEC statement. 1 : The system prints all JCL statements, JES2 or JES3 control statements, the procedure statements, and IEF653I messages, which give the values assigned to symbolic parameters in the procedure statements. 2 : The system prints only JCL statements and JES2 or JES3 control statements. 26 MSGLEVEL Parameter
  • 27. • Messages Indicates which messages the system is to print in the system messages portion of the JCL output. This subparameter is one of the following numbers: 0 : The system prints only JCL messages. It prints JES and operator messages only if the job abnormally terminates, and prints SMS messages only if SMS fails the job. 1 : The system prints JCL, JES, operator, and SMS messages.27 MSGLEVEL Parameter
  • 29. REGION parameter • REGION: The REGION parameter specifies the amount of computer memory allocated for your job. If the REGION parameter is omitted, the system uses a default region size set by the installation. • Syntax: – REGION [.procstepname ]={valueK} / {valueM} = 0M valueK Specifies the required storage in kilobytes valueM Specifies the required storage in megabytes – A JOB statement REGION parameter applies to all steps of the job and overrides any EXEC statement REGION parameters. • REGION=0K or REGION=0M The above mentioned parameters allows the program to request the largest available region size.29
  • 30. TYPRUN parameter • The TYPRUN parameter is used to specify a special type of job processing, such as whether a job is to be held until it is released, and whether its execution is to be suppressed altogether • Syntax TYPRUN=HOLD or TYPRUN=SCAN 30
  • 31. TYPRUN parameter • TYPRUN=HOLD //JOB1 JOB (A123),’RANADE’,TYPRUN=HOLD In this example, JOB1 will be held until it is released by the operator • TYPRUN=SCAN //JOB1 JOB (A123),’RANADE’,TYPRUN=SCAN In this example, the JCL will be checked for syntax errors 31
  • 32. NOTIFY Parameter • NOTIFY: This parameter notifies TSO session of the completion of a job. The message to the TSO terminal indicates whether the job was cancelled or ABENDed. • On your JCL JOB card, use the NOTIFY parameter as follows: – //jobname JOB (accounting info,'description',) // NOTIFY=userid where userid is 1 through 7 alphanumeric characters and must be valid one. – NOTE: If you are logged on at the time the job completes, the message will appear immediately. If not, the message will appear the next time you begin a TSO session. 32 //JOB1 JOB (A123),’RANADE’,NOTIFY=ABCDEFG
  • 33. TIME parameter • The TIME parameter specifies the maximum CPU time allocated for a job. If a job uses less than the amount specified, then the account is billed only for the time used. If a job tries to use more time than the maximum specified, the job will terminate with an S322 ABEND. The TIME parameter has two positional subparameters, minute and second.  TIME=(min,sec) or TIME=min or TIME=(,sec)  The time parameter on the job card does not override the step parameter. 33
  • 34. • TIME=NOLIMIT or TIME=1440 – Indicates that the Job can use the processor for the unlimited period of time.( ie : 24 hrs) • TIME=MAXIMUM – Indicates that the Job can use the processor for the maximum amount of time ie: 357912 mins.(248.55 days) 34 TIME parameter
  • 35. • TIME parameter coded on both Job and Exec //JOB1 JOB (A123),’LITTLE STEVIE’,TIME=12 //STEP1 EXEC PGM=PROGRAM1,TIME=4 //STEP2 EXEC PGM=PROGRAM2,TIME=4 //STEP3 EXEC PGM=PROGRAM3,TIME=4 35 TIME parameter
  • 36. RESTART Parameter • . RESTART : – It specifies the new starting step for a Job. • RESTART=STEP2 – starts from the STEP2 • RESTART=Procname. Stepname – starts from the a step within a cataloged procedure • RESTART=* - starts from the first step. • Note: Datasets created in or after restarted step of previous run may still exist and should be deleted first • RESTART=Y or RESTART=N The restart parameter is used to restart a job if it terminates abnormally. Setting RESTART to Y results in the job being restarted from scratch. Setting it to N results in the job being started from the step at which it is terminated 36
  • 37. EXEC • EXEC (execute) statement is used to name the program to be executed or invokes cataloged or in-stream procedure that the job is to execute • The EXEC statement marks the beginning of each step in a job or a procedure. • A job can have a maximum of 255 EXEC statements Syntax //stepname EXEC PGM=program-name,keyword parameters 37
  • 39. EXEC statement Fields • Name field: – It must be unique within the job. – The stepname must begin in column 3. – It can contain max of 8 alphanumeric or national characters – The first character must be a alphabet. • Operation Field: – This field consists of characters EXEC and can start in any column. – The word EXEC must be preceded and followed by a blank. 39
  • 40. EXEC statement Fields • Parameter field: EXEC statement has 2 types of parameter fields. – Positional Parameter Field – Keyword Parameter Field. • Comment field: The comments field follows the parameter field after at least one intervening blank. 40
  • 41. Positional Parameter field • The two positional parameter of EXEC statements are: – PGM • It refers to a program name • The program name must be 8 characters long. – PROC or Procedure name • It refers to procedure name. 41
  • 42. PGM Parameter • PGM parameter: – It is used to name the program that the system is to execute. – Coded as first parameter in EXEC statement. • The specified program must be a load member of a partitioned data set (PDS) used as a system library, a private library, or a temporary library. • PGM=program-name – Program name specifies the member name of the program to be executed. 42
  • 43. PGM Parameter(Example) //JOB8 JOB BOB,MSGLEVEL=(2,) //JOBLIB DD DSNAME=DEPT12.LIB4,DISP=SHR //STEP1 EXEC PGM=PROGRAM1 43
  • 44. PROC Parameter • Grouping JCL statements together and giving them a name • PROC parameter is used to specify that the system is to call and execute a cataloged or in-stream procedure. • Syntax – {PROC=procedure-name} or {procedure-name} • procedure-name Identifies the procedure to be called and executed: • The name on the PROC statement that begins an in-stream procedure. The in-stream procedure must appear earlier in this job. • Not more than 255 job steps can be coded in one procedure 44
  • 45. PROC Parameter(Example) //BK EXEC OPERATE //SP3 EXEC PROC=PAYWKRS 45
  • 46. PROC - Types • Cataloged procedure Grouping JCL statements together, giving them a name, and recording the name as a partitioned data set • In-Stream Procedure Grouping JCL statements together and making them a part of the JCL input stream 46
  • 47. IN-STREAM PROC • An in-stream procedure is different in that they are not members of partitioned datasets. • They are included in input stream of job itself. • Rules for coding IN-STREAM PROC’s – They must begin with PROC statement – They end with PEND statement – They must be coded immediately after JOB statement & before first EXEC statement – No more than 15 in-stream procedures can be coded in a Job 47
  • 48. IN-STREAM PROC(contd..) //JOB1 JOB (A123),NAME //INST1 PROC //STEP1 EXEC PGM=PROGRAM1 //DD1 DD DSN=FILE1,DISP=SHR //STEP2 EXEC PGM=PROGRAM1 //DD2 DD DSN=FILE2,DISP=DHR // PEND //STEP3 EXEC INST1 The EXEC statements between PROC & PEND statements are not executed when they are first encountered in the Job Stream, but they are saved as a procedure so that they can be executed later. It is executed when the EXEC statement mentioning the IN-STREAM procedure is encountered. 48
  • 49. Cataloged procedures • A cataloged procedure is a set of job control statements that are grouped together, given a name and then recorded as a member of a partitioned dataset. • Rules for coding cataloged proc  They must begin with PROC statement  PEND statement is not required  The procedure name must be unique within the procedure library.  Once the procedure has been created and tested, it can be catalogued and placed inside a system or user defined library 49
  • 50. Sample JCL demonstrating the cataloged procedurePROCEDURE //CATALOG1 PROC //STEP1 EXEC PGM=PROGRAM1 //DD1 DD DSN=FILE1,DISP=SHR //STEP2 EXEC PGM=PROGRAM2 //DD2 DD DSN=FILE2,DISP=SHR JOB calling the above PROC //JOB1 JOB //PROCLIB DD DSN=USER.TEST.PROCLIB,DISP=SHR //JOBLIB DD DSN=USER.TEST.JOBLIB,DISP=SHR //DATA2 EXEC CATALOG1 50
  • 51. Catalogued vs In stream procedure• Cataloged procedures are members of PDS and remain there until they are deleted. In stream procedures are not members of PDS, and exist only for the duration of the job • PROC statement is mandatory in both procedures • PEND statement cannot not coded in catalogued procedures 51
  • 52. Keyword Parameters of EXEC statement • Must follow positional parameters. • Can be coded in any sequence • The keyword parameter coded in a jobstep will apply only to that step • Keyword parameters – ACCT – PARM – ADDRSPC – DPRTY – COND – REGION – TIME 52
  • 53. ACCT • Used to supply accounting information for the job step that it is used in • Syntax ACCT=account-information • Account information can contain more than one sub parameter • Max number of characters that can be included in accounting information including commas is 142 • Ex //STEP1 EXEC PGM=PROGRAM1,ACCT=(A123,RR) 53
  • 54. ADDRSPC • ADDRSPC –(Address Space) Indicates the type of storage for the present step. – This parameter cannot override the specific type of storage coded in the job statement but can override the system default. – Syntax=ADDRSPC[procstepname]={VIRT/REAL} • VIRT - requests virtual storage. The system can page the job step. • REAL - requests real storage. The system cannot page the job step and must place the job step in central storage. • The system uses the EXEC statement ADDRSPC parameter only when no ADDRSPC parameter is on the job statement. – Example • //CAC1 EXEC PGM=A,ADDRSPC=VIRT • //CAC2 EXEC PROC=B,ADDRSPC=REAL,REGION=8K 54
  • 55. DPRTY • Assign a dispatching priority to the job step to determine the order in which the tasks are to be executed • Syntax DRPTY=(value1, value2) value1 => 0-15 specifies the priority of the jobstep higher the number higher the prioirty value2 => 0-15 DPRTY=(value1)*(16) + value2 • Exa //JOB1 JOB (A123),’RANANDE’ //STEP1 EXEC PGM=PROGRAM1,DPRTY(12,9) Priority in STEP1 is determined as (12*16) + 9 = 192 + 9 = 201 55
  • 56. COND Parameter • COND: This parameter is used to test the return codes from previous job steps in order to determine if the present step is to be executed or bypassed. • Syntax= COND[.procstepname]=(code, relational operator,[step name]) If the condition is false, then the step will get executed and if the condition is true, the step will be bypassed. E.g. COND=(30,LE) 56
  • 57. Condition Codes • Condition codes can range from 0 to 4095. Common condition codes are: – 0 no errors or warnings detected – 4 possible error (warning) detected but execution is possible. – 8 serious error detected, likely to fail. – 12 severe error detected, execution impossible. – 16 terminal error, execution cannot continue • The condition parameter coded on the JOB statement applies to all the job steps within the job, and it overrides COND parameters coded on the EXEC statement, if they exist. • The relational operators that can be used are GT, GE, LT, LE, EQ & NE. 57
  • 58. COND – Examples • Example 1 //JOB1 JOB (A123),’JERRY’,COND=(4,LT) //STEP1 EXEC PGM=PROGRAM1 //STEP2 EXEC PGM=PROGRAM2 //STEP3 EXEC PGM=PROGRAM3 • Example 2 //JOB1 JOB (A123),’JERRY’,COND=(4,GT) //STEP1 EXEC PGM=PROGRAM1 //STEP2 EXEC PGM=PROGRAM2 • Example 3 //JOB1 JOB (A123),’JERRY’,COND=((4,GE)),(9,LT)) //STEP1 EXEC PGM=PROGRAM1 //STEP2 EXEC PGM=PROGRAM2 58
  • 59. COND in EXEC statement • The COND parameter coded on the EXEC statement applies only to the step that it is coded in. The job step is executed or bypassed depending upon the condition codes issues by one or more prior job steps • Syntax COND=(comparison-code,condition,stepname,ONLY) • Stepname : specifies the name of the preceding step whose return code is to be checked. • If COND=EVEN executes the Jobstep whether or not the previous step has abended. • COND=ONLY is used for steps that perform recovery processing that should be invoked only in the event of an abend. It helps to execute the Jobstep only if a previous step has abended. 59
  • 60. COND – Examples • Example 1 //JOB1 JOB (A123),’JERRY’ //STEP1 EXEC PGM=PROGRAM1 //STEP2 EXEC PGM=PROGRAM2,COND=(8,EQ,STEP1) • Example 2 //JOB1 JOB (A123),’JERRY’ //STEP1 EXEC PGM=PROGRAM1 //STEP2 EXEC PGM=PROGRAM2,COND=(0,LT) • Example 3 //JOB1 JOB (A123),’JERRY’ //STEP1 EXEC PGM=PROGRAM1 //STEP2 EXEC PGM=PROGRAM2 //STEP3 EXEC PGM=PROGRAM3,COND=(8,GE),(80,LE STEP1) 60
  • 61. COND – Examples 61  Example 4 //JOB1 JOB (A123),’JERRY’ //STEP1 EXEC PGM=PROGRAM1 //STEP2 EXEC PGM=PROGRAM2,COND=EVEN  Example 5 //JOB1 JOB (A123),’JERRY’ //STEP1 EXEC PGM=PROGRAM1 //STEP2 EXEC PGM=PROGRAM2,COND=ONLY
  • 62. PARM Parameter • PARM : Passes control information to the job step when the step is initiated. • This is useful for passing runtime information to an application program • Syntax PARM[procstepname]= information. • Information can be of 100 characters. Examples //STEP1 EXEC PGM=PROGRAM1,PARM=‘M’ LINKAGE SECTION. 01 PARM-FIELD. 05 PARM-LENGTH PIC S9(04) COMP. 05 PARM-RUN-TYPE PIC X(01). 62
  • 63. PARM Parameter(Examples) • The system passes P1,123,P2=5 to the processing program named APG22. RUN3 EXEC PGM=APG22,PARM='P1,123,P2=5‘ • The system passes MT5 to the first step of the procedure named PROC81. If PROC81 contains more steps and their EXEC statements contain PARM parameters, the system nullifies those PARM parameters. ABCDEF EXEC PROC81,PARM=MT5 63
  • 64. REGION Parameter • Region – This parameter is used to specify the amount of central or virtual storage that the steps requires(inclusive of the storage for all the programs in the step to be executed.) • Syntax: – REGION [.procstepname ]={valueK} {valueM} – valueK Specifies the required storage in kilobytes – valueM Specifies the required storage in megabytes – A JOB statement REGION parameter applies to all steps of the job and overrides any EXEC statement REGION parameters. 64
  • 65. Examples • Example • //MKBOYLE EXEC PROC=A,ADDRSPC=REAL,REGION=40 K • //STP6 EXEC PGM=CONT,REGION=120K 65
  • 66. Time Parameter • TIME parameter is used to specify the maximum amount of time that a job step may use the processor or to find out through messages how much processor time a step used. • You can use the TIME parameter on an EXEC statement to increase or decrease the amount of processor time available to a job step over the default value. • TIME [.procstepname ]= {([minutes ][,seconds ])} {1440 } {NOLIMIT } {MAXIMUM } 66
  • 67. Time Parameter(Example) //STEP1 EXEC PGM=GRYS,TIME=(12,1 ) //FOUR EXEC PGM=JPLUS,TIME=(,3 ) //INT EXEC PGM=CALC,TIME=5 //LONG EXEC PGM=INVANL,TIME=NOLIMIT 67
  • 68. DD STATEMENT • DD (data definition) statement is used to convey information about the data that will be read or written within Job. • Syntax: – //ELECSTD DD DSN=PSET.CDRS.SAS.CDRS341.ELECSTD.FLATFILE, – // DISP=SHR • The DD statement must immediately follow the EXEC statement • The DD statement consists of the characters // in columns 1 and 2 and four fields: name, operation (DD), parameter, and comments. • A DD statement is required for each data set. • Each ddname should be unique within the job step. • The ddname is 1 through 8 alphanumeric or national ($, #, @) characters. • The first character must be alphabetic or national ($, #, @). • The ddname must be followed by at least one blank.68
  • 69. DD Statement Fields • Name field: Each ddname should be unique within the job step. • Operation Field: The operation field consists of the characters DD and must be preceded and followed by at least one blank. It can begin in any column. • Comments Field: The comments field follows the parameter field after at least one intervening blank. • Parameter Field: A DD statement has two kinds of parameters: positional and keyword. 69
  • 70. DDNAME s reserved for system use 70 JOBLIB SYSABEND SYSIN SYSOUT
  • 71. Positional Parameters of DD statements • May be coded in the operands field. • Positional Parameters – * – DATA – DUMMY 71
  • 72. Positional Parameters of DD statements • * specifies that data follows immediately; no keyword parameters may follow. The data may not contain any records beginning with // or /*. – A cataloged or in-stream procedure cannot contain a DD * statement. //JOB1 JOB A100,JOHN //STEP1 EXEC PGM=PROGRAM1 //SYSIN DD * < Lines of data> /* 72
  • 73. Positional Parameters of DD statements • DATA : specifies that data follows immediately; keyword parameters may follow the DATA positional parameter. • DUMMY : specifies that if the file is an output file, the output is to be discarded. If the file is an input file, it specifies that there is no data. • Example – //MYDS DD DSNAME=REPORT – //A DD DSNAME=FILE 73
  • 74. Temporary vs Permanent dataset • A temporary data set is a data set that you create and delete within a job. When you use DSNAME for a temporary data set, code the name as two ampersands (&&) followed by a character string 1 to 8 characters in length &&dsname Specifies the name of a temporary data set. • Example //JOB1 JOB A123,’JOE HARRY’ //STEP1 EXEC PGM=PROGRAM1 //DATA1 DD DSN=&&TEMPDATA • A permanent data set is not deleted after a job completion and may be catalogued, if requested. //JOB1 JOB A123,’JOE HARRY’ //STEP1 EXEC PGM=PROGRAM1 //DATA1 DD DSN=USER.TEST.REVENUE.FILE,DISP=SHR 74
  • 75. DUMMY/NULL FILE • Data Set Name for Dummy Data Set : – NULLFILE – Specifies a dummy data set. NULLFILE has the same effect as coding the DD DUMMY parameter. NULLFILE must be coded as a single-word parameter. 75
  • 76. Keyword Parameters of DD statement • Keyword parameters must follow the positional parameters if both are coded 76  Syntax //ddname DD DSN=data_set_name, DISP=(status,normal_disposition,abnormal_disposition )  DSN  DISP  UNIT  SPACE  DCB  VOLUME
  • 77. DISP Parameter • Used to instruct the system as to the current status of a data set • It also indicates the steps to be taken with the dataset upon successful or unsuccessful execution of a Job • Syntax DISP=(status,normal-disposition,abnormal- disposition) • status - indicates current status of dataset – NEW – the dataset does not exist and should be created – OLD – the dataset exists and should be allocated for exclusive use – SHR – the dataset exists and should be allocated for shared use – MOD – the dataset is allocated for exclusive use and is positioned at the end of the data, so additional records may be added after last record 77
  • 78. DISP Parameter • normal-disposition – specifies how the dataset is to disposed upon normal execution of job – DELETE – the dataset is deleted . If the dataset was retrieved from catalog, it is also uncataloged – KEEP – the dataset is retained – CATLG – the dataset is retained and catalog entry is made – UNCATLG – the dataset is retained but it’s catalog entry remove – PASS – Normal disposition only. The dataset is retained for use by a later job step 78
  • 79. DISP Parameter • abnormal-disposition – specifies how the dataset is to be disposed upon abnormal execution of job – DELETE – the dataset is deleted . If the dataset was retrieved from catalog, it is also uncataloged – KEEP – the dataset is retained – CATLG – the dataset is retained and catalog entry is made – UNCATLG – the dataset is retained but it’s catalog entry remove 79
  • 80. DISP Parameter • Default values for DISP parameter If status subparameter is omitted MVS assumes it as NEW If normal-disposition subparameter is omitted the default depends on the status subparameter If status subparameter is NEW the normal disposition subparameter is DELETE else KEEP If abnormal disposition subparameter is omitted it takes whatever value specified in normal disposition subparameter 80
  • 81. DISP Parameter  DISP=SHR Allocates an existing dataset for shared access, normal and abnormal disposition parameter default is KEEP • DISP=OLD Allocates an existing dataset for exclusive access, normal and abnormal disposition default set to KEEP • DISP=MOD If dataset exists, extend it else create it. The access is exclusive, normal and abnormal disposition default is set to KEEP • DISP=(NEW,CATLG) Allocates a new dataset and catalogs it, abnormal disposition set to CATLG 81
  • 82. DISP Parameter • DISP=(OLD,DELETE) Allocates and existing dataset and deletes it , abnormal disposition set to DELETE • DISP=(,KEEP,DELETE) Allocates a new dataset and keeps it if job step ends normally, if job step ends abnormally the dataset is deleted • DISP=(NEW,CATLG,DELETE) The dataset is created, cataloged if the job step ends normally and deletes it if job step ends abnormally 82
  • 83. UNIT Parameter • UNIT : specifies whether the dataset is to reside on disk or tape; device can be DISK for disk datasets, TAPE for cartridge tape datasets, or REEL for reel (round) tape datasets. • UNIT= [device_address] //JOB1 JOB A123,’NAME’ //STEP1 EXEC PGM=PGM1 //DATA1 DD DSN=FILE1, // UNIT=S04 • UNIT= [device_type] //JOB1 JOB A123,’NAME’ //STEP1 EXEC PGM=PGM2 //DATA1 DD DSN=FILE2, // UNIT=3390 83
  • 84. UNIT Parameter  UNIT=[device_group_name] //JOB3 JOB A125,’NAME’ //STEP2 EXEC PGM=PGM3 //DATA2 DD DSN=FILE3, // UNIT=SYSDA • UNIT=[AFF=ddname] //JOB1 JOB D13,KIRAN //STEP1 EXEC PGM=PGM1 //NAME1 DD DSN=DATA1, // UNIT=CART //NAME2 DD DSN=DATA2, // UNIT=AFF=NAME1 84
  • 85. UNIT Parameter • UNIT=[device,DEFER] //JOB4 JOB S123,’NAME5’ //STEP2 EXEC=PGM4 //NAME DD DSN=DATA3, // UNIT=(TAPE,,DEFER) 85
  • 86. VOLUME Parameter • VOL parameter – Specifies the volume on which the dataset resides; name is either a disk pack or a tape name. – This parameter can be omitted for an existing catalogued data set. • VOL=SER – This is used to request specific volumes • //JOB1 JOB D12,’GIREESH’ • //STEP1 EXEC PGM=PGM1 • //NAME1 DD DSN=DATA1, • // VOL=SER=23456 • VOL=REF subparameter – This is used to specify a volume which has been previously defined within same Job, but not in current step – VOL=REF=*.referback 86
  • 87. VOLUME Parameter //JOB1 JOB C123,’JANNET’ //STEP1 EXEC PGM=PGM1 //DD1 DD DSN=DATA1, // VOL=SER=VOL1 //DD2 DD DSN=DATA2, // VOL=REF=*.STEP1.DD1 87
  • 88. SPACE Parameter • Space parameter: – Used to specify the storage requirements on direct access devices – Syntax SPACE= (CYL,(primary,secondary,directory),RLSE) – = (TRK,(primary,secondary,directory),RLSE) – = (BLK,(primary,secondary,directory),RLSE) – Primary – specifies how many units of space to allocate for the dataset’s primary extents. – Secondary – if the file requires space more than what is allocated in primary extent, secondary extents can be used to allocate upto 15 times the primary extents – Directory – this is used only for partitioned datasets • this is used to record the names and locations of members created within partitioned datasets • It should be a number that specifies how many 256-byte blocks are to be contained in the directory of a PDS88
  • 89. SPACE Parameter • RLSE – specifies that any unused space is to be released when the job step is finished with the data set. – This parameter is optional; it should be coded for sequential data sets only. Example – SPACE=(TRK,(20,5),RLSE) – The maximum space that could be allocated is: 20 + 5(15) = 95 tracks. 89
  • 90. DCB Parameter • The DCB parameter contains the information necessary to complete the data control block. • Syntax DCB=(RECFM=format,LRECL=record-length, BLKSIZE=block-size) //DD1A DD DSNAME=EVER, // DISP=(NEW,KEEP), // UNIT=SYSDA, // DCB=(RECFM=FB,LRECL=326,BLKSIZE=23472), // SPACE =(TRK,(20,5),RLSE) 90
  • 91. DCB Parameter • Important subparameters of DCB parameter: • BLKSIZE : specifies the number of bytes (characters) per block,where b is a multiple of the LRECL. • LRECL : specifies the logical record length (n) for fixed or variable length records; omit LRECL for records of undefined length. 91
  • 92. DCB Parameter • RECFM : specifies the record format. Common values for RECFM are – U for undefined-length records, – V or VB for variable-length or variable-blocked records, – F or FB for fixed-length or fixed-blocked records, and – FA, FBA, or VBA for fixed, fixed-blocked, or variable- blocked records with a printer control character as the first byte of data. 92
  • 93. SYSOUT Parameter • SYSOUT : – Specifies one character output class associated with SYSOUT dataset – Syntax SYSOUT=class – If SYSOUT=* then output class specified in MSGCLASS parameter of JOB statement is used – Routes the system output to the class associated with output device indicated – class can be any alphanumeric character from A – Z, 0 – 9 or * 93
  • 94. JOBLIB DD Statement • JOBLIB statement: – Identifies a private library that the system is to search for the program named in each EXEC statement PGM parameter in the job. – Only if the system does not find the program in the private library, does it search system libraries. – Syntax //JOBLIB DD parameter [,parameter ]...[comments ] • We can concatenate job libraries • Do not include a JOBLIB DD statement in an in-stream or cataloged procedure. 94
  • 95. JOBLIB DD Statement //JOB1 JOB A123,’BHASKAR’ //JOBLIB DD DSN=M1.TEST.LOADLIB, // DISP=SHR //STEP1 EXEC PGM=PGM1 //STEP2 EXEC PGM=PGM2 =============================================== = //L140 JOB (00124,'PURGE PGM'), // CLASS=N,MSGCLASS=P,TIME=1440,REGION=6M //JOBLIB DD DSN=IPHP.BT.PGMLIB,DISP=SHR // DD DSN=IPHP.OL.PGMLIB,DISP=SHR // DD DSN=SYS5.PROSERV.EXITS,DISP=SHR // DD DSN=S00P.BT.PGMLIB,DISP=SHR // DD DSN=S00P.OL.PGMLIB,DISP=SHR 95
  • 96. STEPLIB DD Statement • Use the STEPLIB DD statement to – Syntax //STEPLIB DD parameter [,parameter ]...[comments ] – Overriding a JOBLIB • If the system lib is defined in a STEPLIB DD statement then the system will ignore the JOBLIB DD statement for that step. 96
  • 97. STEPLIB DD Statement //PAYROLL JOB BAKER,MSGLEVEL=1 //JOBLIB DD DSNAME=LIB5.GROUP4,DISP=(OLD,PASS) //STEP1 EXEC PROC=SNZ12 //STEP2 EXEC PGM=SNAP1 //STEPLIB DD DSNAME=LIBRARYP,DISP=(OLD,PASS), // UNIT=335 ,VOLUME=SER=55566 //STEP3 EXEC PGM=A153 //STEP4 EXEC PGM=SNAP11 //STEPLIB DD DSNAME=*.STEP2.STEPLIB, // DISP=(OLD,KEEP) 97
  • 98. Concatenating Data Sets • Datasets can be concatenated and perceived together as one file by coding each applicable dataset name one after another • Rules for coding – Up to 255 sequential datasets and 16 PDS files can be concatenated together – The LRECL value must be same for all the datasets. – All datasets concatenated together must have the same type of record format – All datasets concatenated together must exist in the same type of device – The dataset which has the largest bulksize must be given first. 98
  • 99. Concatenating Data Sets  If tape datasets are concatenated datasets together, then block size of the first dataset must be larger than or equal to, that of the subsequent dataset  A PS cannot be concatenated with PDS. Sample JCL //JOB1 JOB 001,’AL’ //STEP1 EXEC PFM=CONCAT1 //DATA1 DD DSN=FILE1 // DD DSN=FILE2 // DD DSN=FILE3 – Here the files FILE1,FILE2 & FILE3 are concatenated together. 99
  • 100. Referring Back of Datasets • A referback is a reference to an earlier DD statement in the job or in a catalogued or in-stream procedure called by a job step. • A referback is in the form of *.ddname or *.stepname.ddname or *stepname.procstepname.ddname. //INPUT DD DSN=*.STEP1.OUTPUT //OUTPUT DD DSN=CLASS.FILE,DCB=*STEP1.OUT1 100
  • 101. JCLLIB statement • JCLLIB statement is used to identify the names of the private libraries that the system uses for the job. • Syntax • //[name ]JCLLIB ORDER=(library [,library ]...)[comments ] • The private libraries that you specify on the JCLLIB statement must comply with following rules: – The private library must be cataloged. – The private library must be accessible to the job. • JCLLIB statement should be coded after JOB statement and before first exec statement. • //JCLLIB DD DSN=MMA2.PROCLIB,DISP=SHR 101
  • 102. Utilities • IEBGENER Copy sequential files • IEBCOPY Copy partitioned data sets Compress partitioned data sets • IEFBR14 Null program commonly used for creation, deletion or updating a dataset with out having to execute any specific datasets 102
  • 103. GDG – Generation Data Groups • These are groups of datasets that are related to each other chronologically and functionally • Index – NAME – LIMIT – EMPTY/NOEMPTY – SCRATCH/NOSCRATH 103
  • 104. How to define a GDG index //JOB1 JOB (A123),’TEST JOB’ //STEP1 EXEC PGM=IDCAMS //SYSIN DD * DEFINE GDG(NAME(FINANCES.MONTHLY)- LIMIT(5) - NOEMPTY - SCRATCH) /* // 104
  • 105. How to define a GDG index //JOB1 JOB (A123),’TEST JOB’ //STEP1 EXEC PGM=IDCAMS //SYSIN DD * DEFINE GDG(NAME(FINANCES.MONTHLY)- LIMIT(5) - NOEMPTY - SCRATCH) /* // 105
  • 106. Creating a GDG dataset //JOB1 JOB (A123),’CREATE GDG DATASET’ //STEP1 EXEC PGM=ABCDEF //INFILE DD DSN=TEST.FILE1,DISP=SHR //OUTFILE DD DSN=FINANCES.MONTHLY(+1), // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(CYL,(100,50),RLSE), // DCB=(MODEL.DCB,RECFM=FB, // LRECL=80,BLKSIZE=800) 106
  • 107. Deleting a GDG Deleting a GDG dataset //JOB1 JOB (A123),’TEST JOB’ //STEP1 EXEC PGM=IEFBR14 //DEL1 DD DSN=FINANCES.MONTHLY(0), // DISP=(OLD,DELETE,DELETE) Deleting a GDG INDEX //JOB1 JOB (A123),’TEST JOB’ //STEP1 EXEC PGM=IDCAMS //SYSIN DD * DELETE(FINANCES.MONTHLY)GDG /* 107
  • 108. Deleting a GDG Deleting a GDG INDEX Using FORCE //JOB1 JOB (A123),’TEST JOB’ //STEP1 EXEC PGM=IDCAMS //SYSIN DD * DELETE(FINANCES.MONTHLY)GDG FORCE /* 108
  • 109. Utilities – SORT //SORT1 JOB (A123),’TEST SORT JOB’ //STEP1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SORTIN DD DSN=TEST.FILE, // DISP=SHR //SORTOUT DD DSN=TEST.FILE.SORTED, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA // SPACE=(CYL,(100,50),RLSE), // DCB=(RECFM=F,LECL=80,BLKSIZE=800) //SORTWK01 DD UNIT=SYSDA, // SPACE =(CYL,(100,50),RLSE), //SORTWK02 DD UNIT=SYSDA, // SPACE =(CYL,(100,50),RLSE), //SYSIN DD * SORT FIELDS=(2,5,CH,A) /* // 109
  • 110. Utilities – SORT  TO COPY ALL THE RECORDS FROM INPUT FILE TO OUTPUT FILE SORT FIELDS=COPY  TO COPY THOSE RECORDS WHICH SATISFY A PARTICULAR CONDITION. INCLUDE COND=(38,10,CH,EQ,C'57071509',OR,36,10,CH,EQ,C' 57105779')  TO OMIT THOSE RECORDS WHICH SATISFY A PARTICULAR CONDITION. OMIT COND=(19,1,CH,EQ,C'S',OR,19,1,CH,EQ,C'S')  TO SKIP CERTAIN NO OF RECORDS SORT FIELDS=COPY,SKIPREC=1000  TO STOP AFTER COPYING CERTAIN NO OF RECORDS SORT FIELDS=COPY,STOPAFT=5000 110
  • 111. Utilities – SORT  SKIPREC AND STOPREC CAN BE USED IN COMBINATION SORT FIELDS=COPY,SKIPREC=1000,STOPAFT=5000 111
  • 112. Utilities – MERGE //SORT1 JOB (A123),’TEST SORT JOB’ //STEP1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SORTIN01 DD DSN=TEST.FILE1,DISP=SHR //SORTIN02 DD DSN=TEST.FILE1,DISP=SHR //SORTIN03 DD DSN=TEST.FILE1,DISP=SHR //OUTFILE DD DSN=TEST.FILE.SORTED, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(CYL,(100,50),RLSE), // DCB=(RECFM=F,LECL=80,BLKSIZE=800) //SYSIN DD * MERGE FIELDS=(2,5,CH,A) /* // 112
  • 113. Common Abend Codes Code Description SOC4 Subscript being out of range SOC7 Caused by bad data, which the program was unable to detect S222 Caused by the job being cancelled by the operator SB37 Caused by lack of sufficient secondary space SE37 Caused by lack of space for PDS SD37 Caused by lack of sufficient primary space 113
  • 114. Utilities – MERGE //SORT1 JOB (A123),’TEST SORT JOB’ //STEP1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SORTIN01 DD DSN=TEST.FILE1,DISP=SHR //SORTIN02 DD DSN=TEST.FILE1,DISP=SHR //SORTIN03 DD DSN=TEST.FILE1,DISP=SHR //OUTFILE DD DSN=TEST.FILE.SORTED, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(CYL,(100,50),RLSE), // DCB=(RECFM=F,LECL=80,BLKSIZE=800) //SYSIN DD * MERGE FIELDS=(2,5,CH,A) /* // 114
  • 115. Utilities – MERGE //SORT1 JOB (A123),’TEST SORT JOB’ //STEP1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SORTIN01 DD DSN=TEST.FILE1,DISP=SHR //SORTIN02 DD DSN=TEST.FILE1,DISP=SHR //SORTIN03 DD DSN=TEST.FILE1,DISP=SHR //OUTFILE DD DSN=TEST.FILE.SORTED, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(CYL,(100,50),RLSE), // DCB=(RECFM=F,LECL=80,BLKSIZE=800) //SYSIN DD * MERGE FIELDS=(2,5,A,CH) /* // 115
  • 116. Utilities – MERGE //SORT1 JOB (A123),’TEST SORT JOB’ //STEP1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SORTIN01 DD DSN=TEST.FILE1,DISP=SHR //SORTIN02 DD DSN=TEST.FILE1,DISP=SHR //SORTIN03 DD DSN=TEST.FILE1,DISP=SHR //OUTFILE DD DSN=TEST.FILE.SORTED, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(CYL,(100,50),RLSE), // DCB=(RECFM=F,LECL=80,BLKSIZE=800) //SYSIN DD * MERGE FIELDS=(2,5,A,CH) /* // 116