640 likes | 809 Vues
This document provides a detailed explanation of Data Definition (DD) statements in IBM Job Control Language (JCL). It discusses the significance of defining data sets, including characteristics such as device requirements, data set names (DSN), and disposition parameters. Emphasis is placed on tape data sets, highlighting units, DISP statuses (OLD, NEW, KEEP), and DCB parameters. The document also clarifies operational aspects like data set identification for different devices, along with examples of coding in COBOL programs. Essential for effective resource management in IBM mainframe environments.
E N D
12 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.
//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 DDUNIT=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 Name • Identifies the name of the file as recorded in the header label when the file was created.
//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: The disposition (DISP) parameter specifies the file’s status.
//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,DELETESHR ,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,DELETESHR ,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,DELETESHR ,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=299221
//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 Size22
Fig. 12.5: The DCB parameter. TheDSORG, MACRF, and DDNAME must be coded in the program DCB.
//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
//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,DELETESHR ,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 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 References • Using the DCB Table entries, Backward References (Refer Backs) can take place.
Backward 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 //
Compiler 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 1645
Compile, 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=A48
//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