DD statements for IMS procedures

The IMS-supplied procedures can contain various DD statements.

DD statement descriptions

The following list contains a description of all the DD statements that can be used by the procedures that are supplied for IMS.

DFSCTL DD
Defines a data set that contains control statements for OSAM Sequential Buffering (SB) and Fast Path High-Speed Sequential Processing (HSSP). The DFSCTL DD statement can be optionally used in the JCL of the IMS batch or IMS dependent online regions. The statement must point to a sequential data set or a partitioned data set member. The data set record format must be F, FB, or FBS.
Use sequential buffering control statements to:
  • Specify I/O operations that require sequential buffering (SB).
  • Capture internal calls to the SB buffer handler.
  • Take a snapshot of SB control blocks.
  • Perform an SB buffer handler self-check.

For more information, see Specifying sequential buffering control statements.

Use HSSP control statements to:
  • Set up the environment in which you process a selected PCB with HSSP.
  • Create an image copy of a designated DEDB area.
  • Suppress index maintenance for any DEDB databases with a secondary index for a specific PSB.
  • Restrict access of a specific HSSP or non-HSSP application program to only designated DEDB areas.
  • Allocate the utility private buffers in 64-bit common storage. By default, the buffers are allocated in 31-bit extended common storage (ECSA).

To learn more, see Using high-speed sequential processing control statements.

DFSDB2AF DD
Points to the Db2 for z/OS® libraries that contain modules used by Db2 Resource Recovery Services attachment facility (RRSAF). Use this DD statement in the DFSJMP or DFSJBP procedure of a JMP or JBP that accesses Db2 for z/OS databases.
An example of a DFSDB2AF DD statement is as follows:
//DFSDB2AF DD  DISP=SHR,DSN=IMS.SDFSRESL
//         DD  DISP=SHR,DSN=DSNxxx.DSNLOAD
//         DD  DISP=SHR,DSN=DSNyyy.DSNLOAD
DFSESL DD
Points to the external subsystem libraries that contain modules used by External Subsystem Attach Facility (ESAF).

The DFSESL DD statement must be included in the procedures for IFP, MPP, BMP, JMP, or JBP regions that access Db2 for z/OS databases using ESAF. The control region must also have access to the ESS libraries. You can use the DFSESL DD statement or you can concatenate the libraries with the JOBLIB/STEPLIB libraries in the control region instead of using the DD statement. The external subsystem libraries must follow IMS.SDFSRESL.

The following is an example of a DFSESL DD statement:
//DFSESL      DD  DISP=SHR,DSN=IMS.SDFSRESL
//            DD  DISP=SHR,DSN=DSNxxx.DSNLOAD
//            DD  DISP=SHR,DSN=DSNyyy.DSNLOAD
DFSHALDB DD
The data set can be either a member of a PDS, a PS, or instream. The data set attributes must be LRECL=80 and RECFM=FB. The contents of this data set should be the HALDB control statements that restrict processing to a single partition.
DFSOLPnn DD
Defines the primary online DASD log data set, where nn can be any numeric value. You can specify between 3 and 100 primary DASD data sets. The block size for the online log data sets must be a minimum of 6 KB and a multiple of 2048 bytes.

For more information about allocating data sets, see Allocating log data sets.

DFSOLSnn DD
Defines the optional secondary online DASD log data sets, where nn can be any numeric value. You can specify between 3 and 100 secondary DASD data sets.The block size for the online log data sets must be a minimum of 6 KB and a multiple of 2048 bytes. These statements are required only if dual logging is requested. Suffixes must be consistent with the primary log data sets.

For more information about allocating data sets, see Allocating log data sets.

DFSRESLB DD
Points to an authorized library that contains the IMS SVC modules. For IMS batch, IMS.SDFSRESL and any data set that is concatenated to it on the DFSRESLB DD statement must be authorized through the Authorized Program Facility (APF).
DFSSTAT DD
Defines a data set describing DB call and buffering activity during an application's execution. The reports are written when the application terminates. If you are interested in receiving //DFSSTAT reports, include a //DFSSTAT DD statement in this procedure. For example: //DFSSTAT DD SYSOUT=A

For more information about interpreting //DFSSTAT reports, see IMS Version 15.4 System Utilities.

DFSTCF DD
Defines the data set specified if the time-controlled operation function is used.
DFSURWF1 DD
Defines the work data set used to resolve logical or secondary index relationships. This DD statement is required if you are running a DL/I batch processing program and PROCOPT=L is specified in the program's PSB to load a database with one or more secondary indexes.

The DFSURWF1 work data set is used as input to the Prefix Resolution utility. This data set can reside on a tape or a direct-access device. Specify DISP=KEEP since this data set might be involved in restart processing. You must specify RECFM=VB and BLKSIZE on this DD statement. A value of LRECL=900 is recommended, but a smaller value (as small as 300) can be used if no secondary indexes are present.

DFSVSAMP DD
Defines the following:
  • Size and number of buffers in a subpool
  • Number and use of local shared resource pools
  • Whether sequential buffering is to be used
  • Various performance and trace options
  • DASD logging data set requirements
  • Whether dynamic allocation for IMS batch is to be used
  • Coupling facility structure names for sysplex data sharing
  • Caching option for the OSAM subpools.

The DFSVSAMP DD statement performs the same function in an IMS batch system that the DFSVSMxx DD statement performs in an online system. In a batch system, the control statements defining the preceding options are in a data set with the ddname of DFSVSAMP; in an online system, the control statements are in a member of the IMS.PROCLIB data set with the member name of DFSVSMxx.

DFSWADSn DD
Defines the required write-ahead data sets, where n can be a number from zero to nine. If dual logging to the WADS is requested, at least two WADS data sets must be provided. If an I/O error occurs on the current WADS, the next WADS is used.

Dual WADS logging provides backup on a read error while terminating the OLDS from the WADS. The primary and secondary WADS contain the same data. Single or dual WADS logging is determined from an execution-time parameter you specify. Regardless of whether dual logging is selected, as many as 10 WADS DD statements can be included. The extra data sets serve as spares on write errors. When a write error occurs, write-ahead logging continues whether single mode or dual mode is selected. One of the spare data sets is substituted for the one with the error. When required WADSs are unavailable because of I/O errors, IMS issues a warning message and continues processing in a degraded mode, truncating OLDS buffers for LWA. When switching to a new WADS after a write error, the current online log buffer is truncated and written to the OLDS, making obsolete all data currently in the WADS.

FORMATA DD and FORMATB DD
Points to IMS.FORMATA and IMS.FORMATB, which contain online MFS definitions to be used as the format library by the online system. They are required by MFS-supported terminals.

IMS limits the number of data sets that can be concatenated for MFS format libraries, IMS.FORMATA and IMS.FORMATB, to 16. All the concatenations must have like attributes.

FPTRACE DD
Defines the destination for the Fast Path trace output. Activate the trace with the DD statement in the procedure and the following command:
/TRACE SET ON TABLE FAST
IEFRDER DD
Defines the primary system log data sets. If DASD instead of tape is used for logging, substitute the appropriate DD statements. IEFRDER and IEFRDER2 can be a combination of tape and DASD. This statement is not required in DB/DC or DBCTL environments if the job does not declare database-update intent.

For more information about allocating data sets, see Allocating log data sets.

IEFRDER2 DD
Defines the secondary system log data sets. This statement is included only when dual system log data sets are used. If DASD is used for logging instead of tape, substitute the appropriate DD statements. IEFRDER and IEFRDER2 can be a combination of tape and DASD.

For more information about allocating data sets, see Allocating log data sets.

IMS DD
Add an IMS DD statement for IMS.PSBLIB, concatenated with IMS.DBDLIB, if GSAM or GLOBAL databases are accessed by the batch application. The statements are:
 //IMS   DD   DSN=IMS.PSBLIB,DISP=SHR
 //      DD   DSN=IMS.DBDLIB,DISP=SHR

The PSB for the batch application program must be contained in the IMS.PSBLIB, and the DBDs for the GSAM or GLOBAL databases referenced by the PSB must be contained in the IMS.DBDLIB.

IMSACB DD
Points to a partitioned data set that contains the output from ACBGEN. The IMSACB DD applies to the DBBBATCH procedure. The IMSACB DD should only be used if online change is not used. To avoid user error, do not use the IMSACB DD if local online change or global online change is enabled. If local online change is enabled, use the MODSTAT DD instead. If global online change is enabled, use the OLCSTAT DD instead.
IMSACBA DD and IMSACBB DD
Point to partitioned data sets containing the output from ACBGEN. Two statements are needed for online change. If any DOPT PSBs exist for an online system, they must reside in any concatenation other than the first. If OLCSTAT is omitted or cannot be accessed, the MODSTAT DD is used, if defined. If OLCSTAT and MODSTAT are omitted or cannot be used, IMSACB DD is used.
If you are using the DFSMDA member with TYPE=IMSACBA and TYPE=IMSACBB to dynamically allocate the IMS IMSACBA and IMSACBB library data sets, remove the IMSACBA and IMSACBB DD statements from your FDR, DBC, DCC, DLISAS, and IMS procedures.
IMSDALIB DD
Defines the non-authorized partitioned data set (PDS) in which members to be dynamically allocated can be stored. Examples include RECON definitions, database definitions, and anything that is in a DFSMDA member.
As implied by the absence of IMSDALIB from the list of valid DD statements in DLIBATCH procedure (for the DLIBATCH procedure) and DBBBATCH procedure (for the DBBBATCH procedure), IMSDALIB is not supported in batch mode.
IMSIRD DD
Defines the data set that submits the modified start-up JCL for a dependent region to the JES internal reader.
IMSLOGR
Defines the input log data set for extended restart. This statement is required if an application program is performing an XRST call. Any program that issues symbolic checkpoint calls must also issue the XRST call and therefore requires the IMSLOGR DD statement.

For more information about allocating data sets, see Allocating log data sets.

IMSMON DD
Describes the recording device that the IMS monitor uses.
IMSRDS DD
Defines the first restart data set; this data set contains information required for recovery, including the checkpoint ID table needed for restarting IMS. This data set does not contain any log records.
IMSRDS2 DD
Defines the second restart data set. It is used only in an XRF system. This data set is identical in function to IMSRDS DD.
IMSTFMTA DD and IMSTFMTB DD
Point to IMS.TFORMAT, which contains the online MFS descriptors for test mode online execution. These DD statements consist of IMS.TFORMAT, concatenated in front of IMS.FORMATA and IMS.TFORMAT, concatenated in front of IMS.FORMATB. If you change MFS formats online, the two DD statements might point to this single TFORMAT data set, or the DD statements might point to two separate TFORMAT data sets.
INPARMS DD
INPARMS is a DD statement used by the IMS abend search and notification program, DFSIASNP. It points to a data set member created by the setup panel that contains keywords and their corresponding values. The keywords are used in email and text messages, where a parser substitutes corresponding values in place of the keywords inside the email and text messages.
JAVAOUT DD and JAVAERR DD
Point to z/OS UNIX System Services file system files that Java™ opens and assigns to stdout and stderr. All System.out.print() calls from the Java application are directed to the UNIX System Services file system file that is specified in the JAVAOUT DD statement. All System.err.print() output from the Java application is directed to the UNIX System Services file system file that is specified in the JAVAERR DD statement.
Recommendation: Specify these DD statements if you want to take advantage of the function that they offer. If you do not specify the JAVAOUT DD or the JAVAERR DD statements, System.out.print() and System.err.print() calls in the Java application do not generate any output.
JCLOUT DD
Defines a data set where output produced by a GENJCL command is to be written.
JCLPDS DD
Defines a partitioned data set that contains the skeletal JCL execution and default members used by the GENJCL commands.
LGMSG DD
Points to the normal long message data set. If a batch only execution is planned, you do not need the message queue data sets. The Queue Manager Concurrent I/O provides a facility for the IMS customer to provide multiple Normal short and long message queue data sets. This facility is optional and is started by the IMS customer providing from 1 to 10 DD statements for the Normal short and long message queues data sets.

The current implementation of the Normal short and long message queues allows only one DD statement for each.

LGMSGL DD
Points to the local long message data set. This statement is used only in an XRF complex.
MODBLKSA DD
Points to IMS.MODBLKSA, which contains the system definition output to be brought online using a /MODIFY command when IMS.MODBLKSB is actively being used by the control region. MODBLKSA must be authorized by APF.
MODBLKSB DD
Points to IMS.MODBLKSB, which contains the system definition output to be brought online using a /MODIFY command when IMS.MODBLKSA is actively being used by the control region. MODSBLKB must be authorized by APF.
MODSTAT DD
Points to IMS.MODSTAT, the modify status data set. The MODSTAT data set contains online change status for an IMS that has local online change enabled. The MODSTAT data set keeps track of the DD names of libraries that are active:
  • ACBLIBA or ACBLIBB
  • FORMATA or FORMATB
  • MODBLKSA or MODBLKSB

The MODSTAT DD applies to the IMS procedure and the DBBBATCH procedure. The MODSTAT DD is not needed in the IMS procedure when global online change is enabled.

If the OLCSTAT DD is omitted or the OLCSTAT data set cannot be accessed, the MODSTAT DD (if defined) determines which ddname to use. If both the OLCSTAT DD and the MODSTAT DD are omitted or the OLCSTAT and MODSTAT data sets cannot be accessed, the IMSACB DD is used.

For the IMS procedure, the ddnames you can use are ACBLIBA (or ACBLIBB), FORMATA (or FORMATB), and MODBLKSA (or MODBLKSB). For the DBBBATCH procedure, the ddname to use is IMSACBA or IMSACBB.

MODSTAT2 DD
Points to IMS.MODSTAT2, which indicates the active or inactive data sets that the IMS online system should use during initialization. This statement is used only in an XRF system.

The MODSTAT2 data set, when used for online changes, is used only for local online change. Global online change (in an IMSplex) uses the OLCSTAT data set.

MSDBCP1 DD and MSDBCP2 DD
Defines the first pair of MSDB checkpoint data sets. IMS alternates between the two when taking an MSDB checkpoint. During an /NRE, /ERE, or IMS procedure, the most current MSDB is determined, and the MSDBs are loaded from that data set (unless the MSDBLOAD keyword is specified during warm start).
MSDBCP3 DD and MSDBCP4 DD
Defines the second pair of MSDB checkpoint data sets. Used only in an XRF environment, these data sets are identical in function to MSDBCP1 and MSDBCP2. In an XRF environment, you must specify all four data sets because both the active and the alternate subsystem each require two. Any two of the four can contain the latest MSDB checkpoint. Although an active subsystem can select the data set containing the latest MSDB checkpoint, the alternate subsystem must select the two data sets not used by the active.
MSDBDUMP DD
Defines a data set that contains a dump of all MSDBs. This data set specifies where to dump the MSDBs when a /DBD DB MSDB command is entered. Successive executions of the command cause the previous contents to be overlaid.
MSDBINIT DD
Defines a data set that contains unloaded or reconstructed MSDBs. This data set specifies where to start the initial load of the MSDBs during all cold starts and during a normal restart if the MSDBLOAD parameter is specified for the /NRESTART command. It is produced by running the MSDB Dump Recovery or MSDB Maintenance utility. MSDBINIT can contain one, several, or all MSDBs defined.
OLCSTAT DD
Points to IMS.OLCSTAT, the online change status data set. The OLCSTAT data set contains online change status for an IMSplex that has global online change enabled. The OLCSTAT data set keeps track of the ddnames of libraries that are active:
  • ACBLIBA or ACBLIBB
  • FORMATA or FORMATB
  • MODBLKSA or MODBLKSB

The OLCSTAT DD applies to the DBBBATCH procedure.

If the OLCSTAT data set is defined, it determines whether to use the IMSACBA or IMSACBB DD name. The OLCSTAT data set name is selected from either:
  • The OLCSTAT DD statement that is coded in the JCL.
  • The dynamic allocation MDA member, if either the OLCSTAT DD statement is omitted, or the data set from the OLCSTAT DD cannot be accessed.
If the MODSTAT DD statement is defined, it determines whether to use the IMSACBA or IMSACBB DD name only when both of the following are true:
  • The OLCSTAT DD statement is omitted.
  • No dynamic allocation MDA member is defined for the OLCSTAT data set.

If both the MODSTAT and OLCSTAT DD statements are omitted, the IMSACB DD is used. If either the OLCSTAT DD statement or the MDA member exists, and the OLCSTAT data set cannot be accessed, the DBB batch job fails with an abend U0821.

PRINTDD DD
Defines the output data set for the test program, including displays of control blocks using the SNAP call. It must conform to the z/OS SNAP data set requirement.
PROCLIB DD
Points to IMS.PROCLIB, which contains all IMS-generated cataloged procedures, jobs, and control statements.
QBLKS DD
Points to the normal queue blocks message data set. If a batch-only execution is planned, you do not need the message queue data sets.
QBLKSL DD
Points to the local queue blocks message data set. This statement is used only in an XRF complex.
RECONn DD
Defines the DBRC RECON data sets, where n is 1, 2, or 3. Add RECON DD statements if DBRC is being used. If dynamic allocation is being used, the DD statements are not necessary. The names of these data sets must be consistent with all subsystems that share the RECON data set.

Related reading: For more information about creating a RECON data set, see IMS Version 15.4 System Administration.

SHMSG DD
Points to the normal short message data set. If a batch-only execution is planned, you do not need the message queue data sets.
SHMSGL DD
Points to the local short message data set. This statement is used only in an XRF complex.
STDENV DD
Defines the input files, partitioned data sets (PDS), or physical sequential (PS) data sets that contain the IMS dependent region environment variables, parameters, and options needed to start the Java virtual machine (JVM). Environment variables, parameters, and options are specified using z/OS shell script syntax. Data sets or files concatenated in the STDENV DD statement are read in the order specified.
Important: When you use the STDENV DD statement, the IMS dependent region ignores the DFSJVMEV and DFSJVMMS members of the IMS PROCLIB data set.

When the STDENV DD statement is present, you can specify the variable JZOS_OUTPUT_ENCODING to set the code page that is used to convert the raw bytes for stdout and stderr. If no code page is provided in JZOS_OUTPUT_ENCODING, the default code page in the current locale is used for stdout and stderr.

Use the variable JZOS_ENABLE_OUTPUT_TRANSCODING to enable or disable the code page that is specified in JZOS_OUTPUT_ENCODING. The encoding option is enabled by default. If JZOS_ENABLE_OUTPUT_TRANSCODING is set to false, then the code page that is specified in JZOS_OUTPUT_ENCODING is ignored and raw bytes are written to stdout and stderr.

The classpath length under the STDENV DD statement can be up to 150K.

To learn more about shell scripts and additional supported variables, see STDENV shell scripting.

STDIN DD
Points to z/OS UNIX System Services file system files that Java opens and assigns to stdin. System.in.read() reads from the UNIX System Services file system file that is specified in STDIN. For example:
//STDIN DD PATH=/tmp/stdin,DISP=SHR
STEPLIB DD
Points to IMS.SDFSRESL, which contains the IMS nucleus and required action modules. If STEPLIB is unauthorized because of having unauthorized libraries concatenated to IMS.SDFSRESL, a DFSRESLB DD statement must be included. The STEPLIB statement need not be authorized for IMS batch.
SYSABEND DD
Defines a dump data set. If both a SYSABEND DD statement and a SYSUDUMP DD statement are used, the last occurrence is used to define the dump.
SYSHALDB DD
Contains a report of all card images of the HALDB control statements with corresponding reasons for either accepting or rejecting the control statements.
SYSIN DD
Defines the control statement input data set.
SYSLIB DD
Points to the libraries that contain the other modules needed for the final executable module.
SYSLIN DD
Defines the destination of the output from the compiler.
SYSLMOD DD
Defines the destination of the output for the binder.
SYSPRINT DD
Defines the output data set for control messages, statistics and reports produced by a utility.
SYSTSPRT DD
Defines the output data set for TSO Parse. The data set contains all TSO Parse error messages, such as errors in parsing the DFSRSRxx PROCLIB member. This DD statement is optional and is not generated by IMS.
SYSUDUMP DD
Defines a dump data set. If both a SYSABEND DD statement and a SYSUDUMP DD statement are used, the last occurrence is used to define the dump.
SYSUTn DD
Is a temporary work data set used by the compiler, where n is 1, 2, 3, or 4. This data set must reside on DASD.