Resource definition data sets

Resource definition data sets (RDDSs) contain resource definitions and resource descriptor definitions, which can be imported from or exported to IMS systems to define a standard set of attributes for resources.

Dynamic resource definition (DRD) uses the resource definition data set (RDDS) to contain the resource definitions and resource descriptor definitions (templates that define standard attributes for resources) for a single IMS system. IMS systems can export resources that are either defined by the batch system definition process, or created or updated dynamically, to an RDDS. These resources can then be imported from the RDDS into an IMS system during cold start processing.

The IVP program that builds a sample IMS system includes support for DRD; using the IVP, you can define and allocate two BSAM data sets which can be used as resource definition data sets (RDDSs) to save IMS resource definitions. For information about the IVP sample jobs, see IMS Version 15.2 Installation.

The definitions in an RDDS are in a binary format. RDDSs are not supported in IMS FDBR regions.

Recommendation: The RDDS is a BSAM data set that is defined with the RDDSDSN= parameter in the DYNAMIC_RESOURCES section of the DFSDFxxx IMS.PROCLIB member. A minimum of two data sets must be used, but three is recommended. In an IMSplex environment, each IMS in the IMSplex should have its own set of RDDSs.

The data sets are allocated dynamically using DFSRDDDD as the DD name. Each data set contains a header record followed by multiple resource records.

In an XRF environment, the XRF alternate must have its own set of resource definition data sets defined. The XRF alternate processes X'22' log records and applies the changes to its resources. When X'4098' (end checkpoint) log records are processed on the alternate IMS system, the log record is checked to determine whether changes have occurred since the last checkpoint. If so, autoexport is initiated.

DBCTL warm standby systems require their own set of RDDSs if you intend to use AUTOEXPORT or AUTOIMPORT. Because DBCTL warm standby systems are started with an /ERE command, the resource definitions are initially loaded from the log records of a failed IMS active system. The initial checkpoint that is created at the end of restart can initiate an AUTOEXPORT request to export all resource and descriptor definitions in the IMS.MODBLKS data set to an RDDS, which can then be used to recover resources if the DBCTL warm standby system (now the active system) needs to be cold started.

When creating and allocating the RDDS data sets, ensure that an End of File (EOF) mark is placed at the beginning of the data set. Failure to do so can produce unpredictable results. To place an EOF mark at the beginning of the data set, use program IEBGENER. The sample job skeleton DFSRDDAL, which is in the IMS.SDFSSLIB data set, can be used for this step.

The BLKSIZE parameters of the SYSUT1 and SYSUT2 DD statements can be variable. The JCL shown below sets BLKSIZE=32760, which is the maximum size allowable for BSAM data sets. Using the maximum size minimizes the number of I/O requests when importing or exporting to an RDDS and is the recommended value.

The SYSUT1 DD statement should contain the following values:

The SYSUT2 DD statement should contain the following values:

An alternate method of allocating the RDDS data sets is to use the ALLOCATE function of ISPF utilities. The ALLOCATE function places an EOF mark correctly at the beginning of the data set.

Do not use program IEFBR14 to allocate the RDDS data sets. IEFBR14 does not place an EOF mark at the start of the data set.

Sample JCL for allocating an RDDS is shown below. This sample JCL, which allocates 3 RDDSs, is shipped with IMS as DFSRDDAL in the IMS.SDFSSLIB data set.

//ALLOC1 EXEC PGM=IEBGENER
//SYSUT1 DD   DUMMY,BLKSIZE=32760,RECFM=VB
//SYSUT2 DD   DSN=IMSTESTL.RDDS1,
//            DCB=(RECFM=VB,LRECL=32756,BLKSIZE=32760),
//            UNIT=SYSDA,VOL=SER=TSTVOL,
//            DISP=(,CATLG),SPACE=(TRK,(10,10))
//SYSPRINT DD SYSOUT=*
//SYSIN  DD   DUMMY

As a rule, an RDDS uses 33 percent more space than an IMS.MODBLKS data set that contains an equivalent set of resource definitions.

If you specify a BLKSIZE value other than 32 760, you must also ensure that:

Recommendation: All RDDS block sizes should have the same value. If the RDDS data sets are defined with different block sizes, a slight performance impact can occur during autoexport processing due to the extra overhead required for reblocking the records.