Special DD statements

Any label can be used for the DD statements except the reserverd or special list of ddnames for special-function DD statements. The following are the list of special DD statements for specific uses

  • JOBLIB
  • STEPLIB
  • SYSPRINT
  • SYSIN
  • SYSABEND
  • SYSMDUMP
  • SYSUDUMP

JOBLIB:

Used to identify a program library (PDS) to search first when attempting to locate load modules (PGM=) executed within the entire JOB. Must be placed after the JOB statement and before the first EXEC statement in the JOB. More than one program library can be concatenated. If a STEPLIB is specified in a JOB that also has a JOBLIB, the STEPLIB takes precedence when searching for a program

Example:

If two load modules are members of the same PDS then execute the load modules by

//PROGPUB JOB NOTIFY=USER
//JOBLIB DD DSN=,DISP=SHR
//STEP1 EXEC PGM=
//…………
//STEP2 EXEC PGM=
//…………
The OS searches the JOBLIB DSN for the two load modules.

STEPLIB:

The STEPLIB DD statement is used to identify a program library to search first when attempting to locate load modules (PGM=) executed during the JOB STEP. More than one program library can be concatenated. If a STEPLIB DD is specified in a JOB that also has a JOBLIB,the STEPLIB takes precedence when searching for a program. JOBLIB / STEPLIB is used to specify private program libraries

Example:

If two load modules are stored as members of two different PDSs, then execute the load modules by

//PROGPUB JOB NOTIFY=USER
//STEP1 EXEC PGM=
//STEPLIB DD DSN=PDS1, ……..
(where the above LM is stored)
//…………
//STEP2 EXEC PGM=
//STEPLIB DD DSN=PDS2, ……….
(where the above LM is stored)
//…………
The OS searches the respective STEPLIB DSNs for the two load modules.

SYSPRINT:

Specifies that an execution report of the load module (PGM) is required. It defines the output file containing the execution messages.

Example:

//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1……………
//

Note: 
The SYSOUT parameter specifies the output stream dataset. It routes the report to the class (device) mentioned. SYSOUT=CLASS-code, is the syntax. The class can be any alphanumeric character or an asterisk(*), which refers to the device coded in the MSGCLASS parameter of JOB statement.

SYSIN:

Used to begin an Input stream dataset; supplies data to the load module. Instream datasets begin with the parameters * or DATA in the SYSIN DD statement. 

Format:

//SYSIN DD * or DATA, or DSN

EXAMPLE:

//STEP2 EXEC PGM=LOAD1
//STEPLIB DD DSN=EMP.PDS,DISP=MOD
//SYSIN DD *
HELLO WORLD
/*

Example:

SYSABEND,SYSUDUMP,SYSMDUMP:

These are Abnormal termination dumps used to find the source of an error when a program abnormally terminates. Coded after the EXEC statement.

SYSUDUMP:

Used to request a formatted dump of the program area, including the contents of the register, a traceback of subroutines called and information about all the datasets used. The dump can be allocated to the SYSOUT CLASS, DASD or TAPE.

Syntax:

//STEP010 EXEC PGM=LM of an Application program
//SYSUDUMP DD SYSOUT=Class

SYSABEND:

Used to request a dump similar to that of SYSUDUMP and additionally the system nucleus.

SYSMDUMP:

Similar to the request of SYSABEND but the dump is unformatted.

Add comment

Subscribe for more goodness!

Do you like what I'm writing? Sign up to receive new content straight into your mailbox!