12 ibm os/jcl: dd statements. //tpein dd unit=tape,dsn=pr.fle, // disp=(old,keep,keep) the dd...
Post on 21-Dec-2015
216 views
TRANSCRIPT
1212
IBM OS/JCL:
DD Statements
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP)
The DD Statement:– Defines a data set to the operating system.– Notifies the operating system that a data set is to be
either accessed or created. – Identifies the device requirements of the data set:
Type of I/O unit required. Specific volumes to be mounted on the unit.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP)
The DD Statement:– Further defines characteristics of the data set
The length of each record; The format of the record; Whether the data set already exists or is to be created during
the job step.
– Specifies what is to be done with the data set when the job completes.
Tape DD Statement
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP)
DDNAME - one to eight alphanumeric characters. The first character must be alphabetic.
The DDNAME comes from the External Reference name in the SELECT Clause of the ENVIRONMENT DIVISION of a COBOL program.
INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CARD-FILE ASSIGN UR-2540R-S-CARDIN. SELECT PRINT-FILE ASSIGN UR-3203-S-PRTFLE. SELECT TAPE-IN ASSIGN UT-3420-S-TPEIN. SELECT TAPE-OUT ASSIGN UT-3420-S-TPEOUT. SELECT DISK-IN ASSIGN DA-3375-S-DSKIN. SELECT DISK-OUT ASSIGN DA-3375-S-DSKOUT. DATA DIVISION. 01 CARD-FILE. 05 EMP-NO PIC X(5) 05 EMP-NAME. 10 EMP-LAST PIC X(25). 10 EMP-FIRST PIC X(25). 10 EMP-MIDDLE PIC X.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP)
DD – Operation - Data Definition
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP)
UNIT - Identifies the data set as a tape file
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP)
DSN (DSNAME) –
Data Set NameIdentifies the name of the file as recorded in
the header label when the file was created.
Fig. 12.4: Fig. 12.4: The UNIT parameter The UNIT parameter specifies a physical device.specifies a physical device.
UNIT=device select from unit or device address (channel/device address). device type (2501, 3330, etc.) group name (READER, PRINTER, etc.)
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // VOL=SER=2992
DISP - Identifies the status of the data set:
Subparameter 1 - at the beginning of the job step;Subparameter 2 - If the job step terminates
normally;Subparameter 3 - If the job step terminates
abnormally.
Fig. 12.6: Fig. 12.6: The disposition (DISP) The disposition (DISP) parameter specifies the file’s status. parameter specifies the file’s status.
DISP=(a,b,c) file status following abnormal job step termination file status following successful job step termination file status at start of job step Start of step End of step dispositions dispositions NEW KEEP OLD PASS SHR DELETE MOD CATLG UNCATLG
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // VOL=SER=2992
DISP - Identifies the status of the data set:
Subparameter 1 - at the beginning of the job step;
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) NEW,DELETE,DELETE SHR , PASS,CATLG ,CATLG,UNCATLG ,UNCATLG,
OLD - The data set was created in an earlier job or job step.
NEW - The data set is being created in the current job step.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // VOL=SER=2992
DISP - Identifies the status of the data set:
Subparameter 2 - If the job step terminates normally;
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) NEW,DELETE,DELETE SHR , PASS,CATLG ,CATLG,UNCATLG ,UNCATLG,
KEEP - The data set is to be saved for future use. DELETE - The data set is scratched. PASS - The data set will remain mounted. CATLG - The data set cataloged to the Tape Library. UNCATLG - The data set is uncataloged from the Tape
Library.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // VOL=SER=2992
DISP - Identifies the status of the data set:
Subparameter 3 - If the job step terminates abnormally.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) NEW,DELETE,DELETE SHR , PASS,CATLG ,CATLG,UNCATLG ,UNCATLG,
KEEP - The data set is to be saved for future use. DELETE - The data set is scratched. CATLG - The data set cataloged to the Tape Library. UNCATLG - The data set is uncataloged from the Tape
Library.
Common sense dictates:
//TPEIN DD UNIT=TAPE,DSN=PR.FLE,// DISP=(OLD,KEEP,KEEP)
Common sense dictates:
//TPEIN DD UNIT=TAPE,DSN=PR.FLE,// DISP=(NEW,CATLG,DELETE)
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // VOL=SER=2992
21
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // DCB=(RECFM=FB,LRECL=300,BLKSIZE=600)
DCB Parameter - supplies data set characteristics to be included in the data control block.
– RECFM – Record Format– LRECL – Logical Record Length– BLKSIZE – Block Size
22
Fig. 12.5: Fig. 12.5: The DCB parameter. TheThe DCB parameter. The DSORG, MACRF, and DDNAME must be DSORG, MACRF, and DDNAME must be coded in the program DCB. coded in the program DCB.
DCB=(list of parameters) Typical parameters include:
LRECL=n logical record length BLKSIZE=n block size RECFM=x record format, where x is one or more of: F fixed length V variable length B blocked A ASA characters Parentheses are required if more than one DCB parameter is coded
Disk DD StatementDisk DD Statement
//DISKIN DD UNIT=DISK,DSN=PR.FLE, SYSDA
//DISKIN DD UNIT=DISK,DSN=PR.FLE, SYSDA
UNIT - Identifies the data set as a disk file
//DISKIN DD UNIT=DISK,DSN=PR.FLE, SYSDA &&PR.FLE
DSN (DSNAME) – – Data Set Name– Identifies the name of the file as recorded in the header
label when the file was created.– && used to indicate a temporary data set
Fig. 12.7: Fig. 12.7: The SPACE parameter.The SPACE parameter.SPACE=(type,(primary,secondary,index),RLSE,CONTIG) contiguous space return (release) any unused space to the system when the job step ends units of space to hold an ISAM index, or blocks of space to hold a library directory secondary space allocation primary space allocation type of space allocation in cylinders (CYL), tracks (TRK), or blocks
//DISKOUT DD UNIT=DISK,DSN=PR.FLE, SYSDA
// SPACE=(TRK,(10,10),RLSE,CONTIG), CYL, BLKSIZE,
// DISP=(NEW,CATLG,DELETE)
Type of space allocation– Primary Allocation– Secondary Allocation
Release Any Unused Space All Space Must Be Contiguous
//DISKIN DD UNIT=DISK,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) NEW,DELETE,DELETE SHR , PASS,CATLG ,CATLG,UNCATLG ,UNCATLG,
OLD - The data set was created in an earlier job or job step.
NEW - The data set is being created in the current job step.
SHR - The input data set will be shared by another job.
//SYSIN DD *
Allows a file to be inputted via the system’s default input device.
The asterisk indicates that the data follows this DD statement.
31
//SYSOUT DD SYSOUT=A
Allows a file to be outputted to the system’s default output device.
Normally implies printer output. The value of SYSOUT is dependent upon your
installation.
32
//DISKIN DD DUMMY
Allows a file to be ignored, or dummyed out. This process will be allowed as long as the logic of the program will allow the file to be dummyed out.
33
//DISKIN DD UNIT=DISK,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP),
34
CONCATENATING DATA SETS
// INDATA DD DSN=CURORDR,UNIT=TAPE, // VOL=SER=K90221, // DISP=(OLD,KEEP,KEEP) // DD DSN=PREVORDR,UNIT=AFF=INDATA, // VOL=SER=14552,DISP=(OLD,KEEP,KEEP) // DD DSN=INV,UNIT=AFF=INDATA, // VOL=SER=866221,DISP=(OLD,KEEP,KEEP)
Data Control Block TableData Control Block Table
As the Job Stream JCL is checked, the information in the DD statements is used to create an entry for the data sets in the DCB Table.
Once the DCB Table is completed, the JCL is then checked for accuracy and validity.
If any errors are discovered, they are documented on the JCL Listing (MSGLEVEL parameter) and the job is not run.
Backward ReferencesBackward References
Using the DCB Table entries, Backward References (Refer Backs) can take place.
Backward ReferencesBackward References
//OSJCL JOB (OSJCL,’04/03/98’),’M. R. IZZO’, // CLASS =T,MSGLEVEL=(1,1), // MSGCLASS =A //STEP1 EXEC PGM=CALC //DD1 DD UNIT=TAPE,DSN=FILE1, // DISP=(OLD,KEEP,KEEP) //DD2 DD UNIT=TAPE,DSN=FILE2, // DISP=(OLD,KEEP,KEEP) //DD3 DD UNIT=TAPE,DSN=FILE3, // DISP=(NEW,PASS,DELETE) 38
//REPORT DD SYSOUT=A
//SYSUDUMP DD SYSOUT=J //CRDIN DD * * Card Input * /* //STEP2 EXEC PGM=CALC2 //DD4 DD UNIT=TAPE,DSN=*.STEP1.DD3, // DISP=(OLD,KEEP,KEEP) //REPORT2 DD SYSOUT=A //SYSUDUMP DD SYSOUT=J //
DCB TableDCB Table
STEP NAME DD Name DSN UNIT RECFMT DISP
STEP 1 DD1 FILE1 TAPE Old, Keep Keep
DD2 FILE2 TAPE Old Keep Keep
DD3 FILE3 TAPE New Pass Delete
REPORT SYSOUT=A
SYSUDUMP SYOUT=J
CRDIN *
STEP2 DD4 *.STEP1.DD3 TAPE
DCB TableDCB Table
STEP NAME DD Name DSN UNIT RECFMT DISP
STEP 1 DD1 FILE1 TAPE Old, Keep Keep
DD2 FILE2 TAPE Old Keep Keep
DD3 FILE3 TAPE New Pass Delete
REPORT SYSOUT=A
SYSUDUMP SYOUT=J
CRDIN *
STEP2 DD4 FILE3 TAPE New Pass Delete
DCB TableDCB Table
STEP NAME DD Name DSN UNIT RECFMT DISP
STEP 1 DD1 FILE1 TAPE Old, Keep Keep
DD2 FILE2 TAPE Old Keep Keep
DD3 FILE3 TAPE New Pass Delete
REPORT SYSOUT=A
SYSUDUMP SYOUT=J
CRDIN *
STEP2 DD4 FILE3 TAPE OLD,KEEP,KEEP
DCB TableDCB Table
STEP NAME DD Name DSN UNIT RECFMT DISP
STEP 1 DD1 FILE1 TAPE Old, Keep Keep
DD2 FILE2 TAPE Old Keep Keep
DD3 FILE3 TAPE New Pass Delete
REPORT SYSOUT=A
SYSUDUMP SYSOUT=J
CRDIN *
STEP2 DD4 FILE3 TAPE New Keep Keep
REPORT2 SYSOUT=A
SYSUDUMP SYSOUT=J
DCB TableDCB Table
STEP NAME DD Name DSN UNIT RECFMT DISP
STEP 1 DD1 FILE1 TAPE Old, Keep Keep
DD2 FILE2 TAPE Old Keep Keep
DD3 FILE3 TAPE New Pass Delete
REPORT SYSOUT=A
SYSUDUMP SYSOUT=J
CRDIN *
STEP2 DD4 FILE3 TAPE Old Keep Keep
REPORT2 SYSOUT=A
SYSUDUMP SYSOUT=J
Compiler Return CodesCompiler Return Codes
Level W - Warning - Return Code 4
Level C - Condition - Return Code 8
Level E - Errors - Return Code 12
Level F - Fatal - Return Code 16
45
Compile, Link, & ExecuteCompile, Link, & Execute //OSJCL JOB (OSJCL,’04/03/98’),’M.R.IZZO’,
// CLASS=T,MSGLEVEL=(1,1),// MSGCLASS=A//COB EXEC PGM=IKFCBL00,PARM=‘LOAD’//SYSPRINT DD SYSOUT=A//SYSUT1 DD UNIT=SYSDA,// SPACE=(460,(700,100))//SYSUT2 DD UNIT=SYSDA,// SPACE=(460,(700,100))
46
//SYSUT3 DD UNIT=SYSDA,// SPACE=(460,(700,100))//SYSUT4 DD UNIT=SYSDA,// SPACE=(460,(700,100))//SYSLIN DD DSNAME=&&LOADSET,// DISP=(MOD,PASS,DELETE),// UNIT=SYSDA,SPACE=(80,(500,100))//SYSIN DD * * * Source Input/*
47
//LKED EXEC PGM=IEWL, // PARM=(‘LIST,XREF,LET’), // COND=(5,LT,COB) //SYSLIN DD DSN=&&LOADSET, // DISP=(OLD,DELETE,KEEP) //SYSLMOD DD DSN=&&GOSET(GO), // DISP=(NEW,PASS,DELETE), // UNIT=SYSDA, // SPACE=(1024,(50,20,1)) //SYSUT1 DD UNIT=SYSDA, // SPACE=(1028,(50,20)) //SYSPRINT DD SYSOUT=A
48
//GO EXEC PGM=*.LKED.SYSLMOD, // COND=((5,LT,COB),(5,LT,LKED)) //TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // DCB=(RECFM=FB,LRECL=150), // DCB=(BLKSIZE=300), // VOL=SER=00978 //TPEOUT DD UNIT=TAPE,DSN=PR.FLE, // DISP=(NEW,CATLG,DELETE), // DCB=(RECFM=FB,LRECL=150), // DCB=(BLKSIZE=300)
49
//DSKIN DD UNIT=DISK,DSN=PR.TRANS, // DISP=(OLD,KEEP,KEEP), // DCB=(RECFM=FB,LRECL=200), // DCB=(BLKSIZE=400) //DSKOUT DD UNIT=DISK,DSN=ED.PR.TRANS, // DISP=(NEW,CATLG,DELETE), // SPACE=(TRK,(10,5),RLSE) //PRT DD SYSOUT=A //SYSUDUMP DD SYSOUT=A //CRDIN DD * * * Card Input /* // 50
Fig. 12.1: Fig. 12.1: One data control block is coded One data control block is coded for each file accessed by a program. for each file accessed by a program.
* DATA CONTROL BLOCKS * SCREEN DCB MACRF=GM,DSORG=PS,
EODAD=QUIT,DDNAME=DATAIN PRINTER DCB MACRF=PM,DSORG=PS,DDNAME=LINE /* //LINE DD parameters //DATAIN DD parameters /* //
Fig. 12.2: Fig. 12.2: The The linkage linkage editor editor adds an adds an access access method to method to the load the load module.module.
L o a d m o d u le
O b jec t m o d u le
A ccess m eth o d fo r S C R E E N
O th er su b ro u tin es
P R IN T E R D C B M A C R F = P M ,D S O R G = P S ,...
S C R E E N D C B M A C R F = G M ,D S O R G = P S ,...
A ccess m eth o d fo r P R IN T E R
Fig. 12.3: Fig. 12.3: The link to a specific The link to a specific physical device is established at physical device is established at OPEN time.OPEN time.
SCREEN DCB DDNAME=DATAIN,...
OPEN (SCREEN,INPUT)
Access methods and other subroutines
//DATAIN DD parameters
Magnetic Disk ParametersMagnetic Disk Parameters
UNITDCBDISPDSNAMEVOLUMESPACE
Fig. 12.8: Fig. 12.8: Some examples.Some examples.1. Create a temporary data set on the system work pack. //DISK DD DSNAME=&&TEMP,UNIT=SYSDA, // DISP=(NEW,PASS),SPACE=(CYL,5), // DCB=(LRECL=120,BLKSIZE=2400,RECFM=FB) 2. Create a cataloged data set on a specific volume. //RECS DD DSN=MU.USERDATA.MIS4,UNIT=3330, // VOL=SER=MIAMI3,DISP=(NEW,CATLG), // SPACE=(TRK,(20,5),RLSE,CONTIG), // DCB=(LRECL=155,RECFM=FB,BLKSIZE=1550) 3. Create a kept data set. //KEEPIT DD SPACE=(CYL,(10,2),RLSE), // DCB=(RECFM=FB,LRECL=72,BLKSIZE=720), // VOL=SER=MYPACK,DISP=(NEW,KEEP), // DSNAME=MYDATA,UNIT=3330
Fig. 12.8: Fig. 12.8: Some ExamplesSome Examples
4. Retrieve a passed data set. //DATA DD DSNAME=&&TEMP,DISP=(OLD,DELETE) 5. Retrieve a cataloged data set //STUFF DD DSN=MU.USERDATA.SAN4,DISP=OLD 6. Retrieving a kept data set that has not been cataloged requires UNIT and VOLUME parameters in addition to DSNAME and DISP //DDNAME DD DSNAME=MYDATA,UNIT=3330, // VOL=SER=MYPACK,DISP=(OLD,KEEP)
Magnetic Tape ParametersMagnetic Tape Parameters
UNITDCBDISPDSNAMEVOLUMELABEL
System Input and OutputSystem Input and Output
Spooling -- slower devicesSystem input device
– //SYSIN DD *
System output device– //SYSOUT DD SYSOUT=A
Fig. 12.9: Fig. 12.9: TheThe DDNAME can be qualified DDNAME can be qualified if it is part of a catalogued procedure.if it is part of a catalogued procedure.
//JOBNAME JOB (9824,18),DAVIS,CLASS=A // EXEC FORTRAN //FORT.SYSIN DD *
FORTRAN source module /* //GO.SYSIN DD * Data /*
Fig. 12.10: Fig. 12.10: Code the library member Code the library member name as part of the DDNAME.name as part of the DDNAME.
DSNAME=library(member) a member name parentheses are required the library name
Fig. 12.11: Fig. 12.11: A complete set of JCL to A complete set of JCL to support an assemble, link edit, and go support an assemble, link edit, and go job. job.
1 //MU132 JOB 2 // EXEC ASMGCLG 3
XXASM EXEC PGM=IEUASM
4 XXSYSLIB DD DSNAME=SYS1.MACLIB,DISP=SHR 5 XXSYSUT1 DD … 6 XXSYSUT2 DD … 7 XXSYSUT3 DD … 8 XXSYSPRINT DD SYSOUT=A 9 XXSYSPUNCH DD SYSOUT=B 10 XXSYSGO DD DSNAME=&&LOADSET,DISP=(NEW,PASS),
XX SPACE=(400,(100,20)),UNIT=SYSDA, XX DCB=(LRECL=80,BLKSIZE=400,RECFM=FB)
11 //ASM.SYSIN DD * 12
Source code
13 /*
Fig. 12.11: Fig. 12.11: ContinuedContinued
14
XXLKED EXEC PGM=IEWL
15 XXSYSLIN DD DSNAME=&&LOADSET, DISP=(OLD,DELETE) XX DCB=(LRECL=80,BLKSIZE=400,RECFM=FB)
16 XX DD DDNAME=SYSIN 17 XXSYSLMOD DD DSNAME=&&GOSET(GO),DISP=(NEW,PASS),
SPACE=(1024,(50,20,1)), UNIT=SYSDA
18 XXSYSUT1 DD … 19 XXSYSPRINT DD SYSOUT=A 20 /*
Fig. 12.11: Fig. 12.11: ContinuedContinued
21
XXGO EXEC PGM=*.LKED.SYSLMOD
22 //GO.OUTPUT DD SYSOUT=A 23 //GO.DISK DD Parameters for program disk file 24 //GO.SYSIN DD * 25
Data
26 /* 27 //