baseline jcl day2

advertisement
JCL
DAY 2
4/8/2015 3
ER/CORP/CRS/OS02/003-2
EXEC STATEMENTS
PGM
COND
PROC
PARM
ACCT
REGION
ADDRSPC
TIME
PERFORM
4/8/2015 4
ER/CORP/CRS/OS02/003-2
IMPORTANT EXEC PARAMETERS
positional parameters
(PGM & PROC)
ex. //STEP1 EXEC PGM=IEFBR14
ex. //STEP1 EXEC PROC=MYPROC
•
The PGM parameter identifies the name of the program that is
to be executed.
•
The PROC parameter identifies the name of the procedure that is
to be called.
4/8/2015 5
ER/CORP/CRS/OS02/003-2
SEARCH SEQUENCE OF A PROGRAM
JOB PACK AREA
PAGEABLE LINK PACK
AREA (PLPA)
JOB LIBRARY /
STEP LIBRARY
FIXED LINK PACK
AREA - FLPA
MODIFIED LINK PACK
AREA - MLPA
SYS1.LINKLIB
PGM NOT
FOUND
4/8/2015 6
ER/CORP/CRS/OS02/003-2
MVS 370 memory map
Virtual Storage
SQA
16 MB
PLPA
Common area
CSA
Unallocated storage
Private area
User Region
SWA
System Region
System area
Nucleus
4/8/2015 7
ER/CORP/CRS/OS02/003-2
0 MB
IMPORTANT EXEC PARAMETERS
keyword parameters
(PARM)
ex. //STEP1 EXEC PGM=IEBUPDT,PARM=MOD
•
The PARM parameter is used to supply information to a program
as it executes.
4/8/2015 8
ER/CORP/CRS/OS02/003-2
IMPORTANT EXEC PARAMETERS
keyword parameters
(ADDRSPC)
ex. //STEP1 EXEC PGM=IEBUPDT,
//
ADDRSPC=VIRT
•
The ADDRSPC parameter is to indicate to the system that the job
step is to use either VIRT (virtual) or REAL (real) storage.
• By
default it is virtual.
4/8/2015 9
ER/CORP/CRS/OS02/003-2
IMPORTANT EXEC PARAMETERS
keyword parameters
(COND)
ex. //STEP3 EXEC PGM=IEBUPDT,COND=(8,LE,STEP1)
• The COND Permits the execution of steps to depend on the
return code from the previous steps.
• The question should be is 8 less than the RC code of STEP1.
If Yes then Bypass STEP3
If No Execute STEP3
• The COND parameter is also a JOB parameter.
ER/CORP/CRS/OS02/003-2
4/8/2015
10
IMPORTANT EXEC PARAMETERS
keyword parameters
(COND)
COND =
TRUE
BYPASS
FALSE
EXECUTE
4/8/2015 11
ER/CORP/CRS/OS02/003-2
COND parameter in detail
Only code in the exec statement
not in job statement
Format :
COND=( 0/4/6/8/12/16 , GT/GE/LT/LE/EQ/NE , step name , EVEN/ONLY )
RC comparison
code
(0 - 4095)
Condition
EVEN : step will be executed even if previous steps
terminate abnormally
ONLY : step will be executed only if previous steps
4/8/2015
terminate abnormally.
ER/CORP/CRS/OS02/003-2
12
COND parameter examples
(in JOB statement)
000100 //INF6244A JOB COND=(4,LT)
000200 //STEP1 EXEC PGM=IEFBR14
000300 //STEP2 EXEC PGM=IFBR14
000400 //STEP3 EXEC PGM=IEFBR14
• STEP1 executes with RC = 0
• STEP2 executes with RC *S806 that is it is greater than 4
• Job terminates
ER/CORP/CRS/OS02/003-2
4/8/2015
13
COND parameter examples
(in EXEC statement)
000100 //INF6244A JOB
000200 //STEP1 EXEC PGM=IEFBR14
000300 //STEP2 EXEC PGM=IEFBR14,COND=(0,EQ,STEP1)
• STEP1 executes with RC = 0
• STEP2 does not execute
ER/CORP/CRS/OS02/003-2
4/8/2015
14
COND parameter examples
(in EXEC statement)
000100 //INF6244A JOB
000200 //STEP1 EXEC PGM=IEFBR14
000300 //STEP2 EXEC PGM=IEFBR14,COND=ONLY
• STEP1 executes with RC = 0
• STEP2 does not execute
000100 //INF6244A JOB
000200 //STEP1 EXEC PGM=IFBR14
000210 //STEP2 EXEC PGM=IEFBR14
000220 //STEP3 EXEC PGM=IEFBR14,COND=ONLY
• STEP1 abends with RC = *S806
• STEP2 does not execute ( if a single step abends all other steps
are bypassed if no COND statement is there )
• STEP3 executes with RC = 0
ER/CORP/CRS/OS02/003-2
4/8/2015
15
COND parameter examples
(in EXEC statement)
000100 //INF6244A JOB
000210 //STEP1 EXEC PGM=IEFBR14
000300 //STEP2 EXEC PGM=IEFBR14,COND=EVEN
• STEP1 executes with RC = 0
• STEP2 executes with RC = 0
000100 //INF6244A JOB
000200 //STEP1 EXEC PGM=IFBR14
000210 //STEP2 EXEC PGM=IEFBR14
000220 //STEP3 EXEC PGM=IEFBR14,COND=EVEN
• STEP1 abends with RC = *S806
• STEP2 does not execute ( if a single step abends all other steps
are bypassed if no COND statement is there )
• STEP3 executes with RC = 0
ER/CORP/CRS/OS02/003-2
4/8/2015
16
COND parameter examples
(in EXEC statement)
//INF6244A JOB
//STEP1 EXEC PGM=IEFBR14
//STEP2 EXEC PGM=IEFBR14
//STEP3 EXEC PGM=IEFBR14,
//
COND=((0,NE,STEP2),ONLY)
• STEP1 executes with RC = 0
• STEP2 executes with RC = 0
• STEP3 does not execute
000100 //INF6244A JOB
000200 //STEP1 EXEC PGM=IEFBR14
000210 //STEP2 EXEC PGM=IEFBR14
000220 //STEP3 EXEC PGM=IEFBR14,
000230 //
COND=((0,NE,STEP2))
• STEP1 executes with RC = 0
• STEP2 executes with RC = 0
• STEP3 executes with RC = 0
ER/CORP/CRS/OS02/003-2
4/8/2015
17
COND parameter examples
(in EXEC statement)
000100 //INF6244A JOB
000200 //STEP1 EXEC PGM=IEFBR14
000210 //STEP2 EXEC PGM=IEFBR14
000220 //STEP3 EXEC PGM=IEFBR14,
000230 //
COND=((0,NE,STEP2),(0,NE,STEP1))
• STEP1 executes with RC = 0
• STEP2 executes with RC = 0
• STEP3 executes with RC = 0
000100 //INF6244A JOB
000200 //STEP1 EXEC PGM=IEFBR14
000210 //STEP2 EXEC PGM=IEFBR14
000220 //STEP3 EXEC PGM=IEFBR14,
000230 //
COND=((0,NE,STEP2),(0,EQ,STEP1))
• STEP1 executes with RC = 0
• STEP2 executes with RC = 0
• STEP3 does not execute
ER/CORP/CRS/OS02/003-2
4/8/2015
18
COND parameter examples
(STEP overriding JOB)
000100 //INF6244A JOB COND=(0,NE)
000200 //STEP1 EXEC PGM=IEFBR14
000210 //STEP2 EXEC PGM=IEFBR14
000220 //STEP3 EXEC PGM=IEFBR14
• STEP1 executes with RC = 0
• STEP2 executes with RC = 0
• STEP3 executes with RC = 0
000100 //INF6244A JOB COND=(0,NE)
000200 //STEP1 EXEC PGM=IEFBR14
000210 //STEP2 EXEC PGM=IEFBR14
000220 //STEP3 EXEC PGM=IEFBR14,COND=(0,EQ,STEP2)
• STEP1 executes with RC = 0
• STEP2 executes with RC = 0
• STEP3 executes with RC = FFLUSH
ER/CORP/CRS/OS02/003-2
4/8/2015
19
IMPORTANT EXEC PARAMETERS
keyword parameters
(IF/THEN/ELSE/ENDIF)
ex. // IF (STEPA.RC GE 4) THEN
//jcl statements
// ELSE
//jcl statements
// ENDIF
• The IF/THEN/ELSE/ENDIF statement construct provides a simple
means of selectively executing job steps.
• It is available in Release 4 or later , of MVS/ESA and eliminates
the need to struggle with the COND parameter.
ER/CORP/CRS/OS02/003-2
4/8/2015
20
IF/THEN/ELSE/ENDIF
parameter examples
000100 //INF6244A JOB 2933100P,AMLAN,MSGCLASS=A,CLASS=A
000120 //STEP1 EXEC PGM=IEFBR14
000121 // IF (STEP1.RC GT 0) THEN
000130 //STEP3 EXEC PGM=IEFBR14
000150 //DD1 DD DSN=INF6244.TRUE.PS,DISP=(NEW,CATLG),
000160 //
VOL=SER=INUSR2,
000170 //
SPACE=(TRK,(1,1)),
000180 //
DCB=(LRECL=80,BLKSIZE=800,RECFM=FB)
000190 // ELSE
000191 //STEP4 EXEC PGM=IEFBR14
000200 //DD2 DD DSN=INF6244.FALSE.PS,DISP=(NEW,CATLG),
000300 //
VOL=SER=INUSR2,
000400 //
SPACE=(TRK,(1,1)),
000500 //
DCB=(LRECL=80,BLKSIZE=800,RECFM=FB)
000600 // ENDIF
STEPNAME PROCSTEP RC
000610 /*
STEP1
00
STEP3
FLUSH
STEP4
ER/CORP/CRS/OS02/003-2
00
4/8/2015
21
COMMON keyword PARAMETERS
in JOB & EXEC
TIME
COND
REGION
ER/CORP/CRS/OS02/003-2
4/8/2015
22
DD STATEMENTS
ddname
DD *
VOL
DCB
DSN
UNIT
DISP
SYSMDUMP
REFERBACK
STEPLIB
DATA
SYSOUT
DUMMY
DLM
SYSUDUMP
SYSABEND
JOBLIB
ER/CORP/CRS/OS02/003-2
4/8/2015
23
DSN
• The name of the data set
•
Simple Name
: 1 to 8 chars
•
Qualified Name
: separated by periods
each name 1 to 8 chars
total 44 characters including periods
• Temporary data sets : &&TEMP or do not mention DSN
parameter
• Refer back : DSN=*.STEP1.DD1
ER/CORP/CRS/OS02/003-2
4/8/2015
24
DISP
DISP=
NEW
OLD
,DELETE
,KEEP
,DELETE
,KEEP
SHR
MOD
,CATLG
,UNCATLG
,PASS
,CATLG
,UNCATLG
ER/CORP/CRS/OS02/003-2
4/8/2015
25
DCB
LRECL=n (VALUE IN BYTES)
RECFM=(F/FB/V/VB/U)
BLKSIZE= multiple of LRECL
DSORG=(PS/PO/DA)
ER/CORP/CRS/OS02/003-2
4/8/2015
26
SPACE
SPACE=(space units,(primary,secondary,dir),RLSE)
space unit - TRK(tracks)/CYL(cylinders)/BLOCKSIZE in
bytes
eg: SPACE=(1024,(100,200)
SPACE=(TRK,(10,5) - allocate 10 tracks primarily and if
required as secondary allocation 5 tracks
ER/CORP/CRS/OS02/003-2
4/8/2015
27
UNIT
• Hardware address
• Type
• Group
//
//
//
UNIT=0320
OR
UNIT=3390
OR
UNIT=SYSDA
To use the same unit that has been used by prior DD statement
//
UNIT=AFF=ddname
ER/CORP/CRS/OS02/003-2
4/8/2015
28
VOL
• It is used to specify a disk volume or specific tapes.
//
VOL=SER=INUSR2,UNIT=SYSDA
To referback a volume used by some prior DD statement use:
//
VOL=REF=ddname
ER/CORP/CRS/OS02/003-2
4/8/2015
29
SYSOUT
• SYSOUT is used to route output to a device.
// DDNAME DD SYSOUT=CLASS
// DDNAME DD SYSOUT=A
If you want to send the output to the same device described by
MSGCLASS of the job use
// DDNAME DD SYSOUT=*
ER/CORP/CRS/OS02/003-2
4/8/2015
30
JOBLIB STATEMENTS
ex. //INFOSYS1 JOB
//JOBLIB DD DSN=INFOSYS.COMPLIB.LOAD,
• //
DISP = SHR
DISP = (what should be the disposition)
• //STEP1 EXEC PGM=INHOUSE
•
The JOBLIB statement defines the library where the program is
residing. It is placed after the JOB statement and is effective for
every JOB steps.
ER/CORP/CRS/OS02/003-2
4/8/2015
31
STEPLIB STATEMENTS
ex. //STEP1 EXEC PGM=INHOUSE
//STEPLIB DD DSN=INFOSYS.COMPLIB.LOAD,
• //
DISP = SHR
(what should be the disposition)
•
The STEPLIB statement defines the library where the program is
residing. It is placed after the EXEC statement and is effective for
that particular step and overrides any JOBLIB statement.
ER/CORP/CRS/OS02/003-2
4/8/2015
32
The first JCL to create a PS.
//AMLANX JOB 1234,AMLAN,CLASS=A,MSGCLASS=(1,1) TO CREATE PS
//STEP1 EXEC PGM=IEFBR14
//PS1 DD DSN=AMLAN.FLOWER.ROSE,UNIT=SYSDA,VOL=SER=INUSR2,
//
DCB=(LRECL=80,RECFM=FB,BLKSIZE=800),SPACE=(TRK,(1,1)),
//
DISP=(NEW,CATLG)
ER/CORP/CRS/OS02/003-2
4/8/2015
33
That’s all for
DAY
2
ER/CORP/CRS/OS02/003-2
4/8/2015
34
Download