DYNALLOC control statement

Specifies whether the data sets for the input and shadow databases and the indexes are dynamically allocated.

The DYNALLOC control statement specifies whether to allocate the following data sets:

  • Original and shadow data sets for the database, the primary index, and the HALDB indirect list data set
  • Data sets for secondary indexes of non-HALDB

This control statement is optional. The default is DYNALLOC=YES,Z.

Unless SPACEALLOC=YES specified, DASD spaces for shadow data sets or output secondary index data sets must be preallocated in an IDCAMS step before the Smart Reorg utility step. For automatic allocation of DASD space, see SPACEALLOC control statement.

Read syntax diagramSkip visual syntax diagramDYNALLOC=YES(YESNO,YESNO,YESNO)NO,Z,c
The three subparameters (DYNALLOC parameters) of the first parameter for the DYNALLOC statement specify whether to dynamically allocate the following data sets:
  • First subparameter: Data sets for the original database and the original primary index
  • Second subparameter: Data sets for the shadow database and the shadow primary index
  • Third subparameter: Data sets in which the secondary indexes are to be rebuilt

For each subparameter, YES specifies to allocate data sets dynamically. If you specify NO, you must specify the corresponding data sets in the JCL stream. DYNALLOC=YES means DYNALLOC=(YES,YES,YES); and DYNALLOC=NO means DYNALLOC=(NO,NO,NO). For a HALDB, the first subparameter must be YES.

DYNALLOC=(xxx,xxx,YES) specifies to dynamically allocate the data sets that are used by the Index Builder task as output. If INDEXBLD=YES,CURRENT, data sets for the original secondary indexes are allocated. If INDEXBLD=YES,NEW, data sets for the shadow secondary indexes are allocated. In both cases, the DFSMDA member for the original secondary indexes for the non-HALDB must be present. For more information about output secondary index data sets, see INDEXBLD control statement and Secondary indexes. For partitioned secondary indexes (PSINDEXes), see PSINDEXBLD control statement.

The second parameter c specifies a suffix character, other than 'T'. The names of shadow data sets are created by adding the suffix to the corresponding original data set names. The default suffix is 'Z'. For example, if the original data set is named IMS.TESTDB01, the shadow data set is named IMS.TESTDB01.Z.

If the shadow data set names are not appropriate, you should specify DYNALLOC=(xxx,NO,xxx) or DYNALLOC=(xxx,xxx,NO) and specify the shadow data set names in the JCL stream. For DD names for the primary database and primary index, see DDNMAP control statement in the case of a non-HALDB, and see Database, primary index, and ILDS in the case of a HALDB. For secondary indexes of a non-HALDB, for either INDEXBLD=YES,CURRENT or INDEXBLD=YES,NEW, use the DD names that are defined in the DBD in the job step.

Note: If you specify both SPACEALLOC=YES and the DDEFPDS2 data set, the second parameter is ignored. The name of each shadow data set is determined from the information defined in the DDEFPDS2 data set. For details, see SPACEALLOC control statement.

IBM® recommends that you use DYNALLOC=YES.

Notes:
  • For a non-HALDB, DFSMDA members are used to allocate the original database and original indexes. You can use the IMSDALIB DD statement to specify the library that contains DFSMDA members. For more information about the IMSDALIB DD statement, see DD names common to all processing options.
  • If DBRC is active, as it always is for a HALDB, the data sets of the original database and original indexes, including secondary indexes if INDEXBLD=YES or PSINDEXBLD=YES, must be registered to DBRC. For a non-HALDB, if a data set name that is defined in the DFSMDA member differs from the data set name registered to DBRC, the job ends abnormally.
  • For a HALDB, indirect list data sets (ILDSs) are included in the set of original or shadow database data sets. If ILDSBLD=NO is specified or there is no segment for which the indirect list entry (ILE) is to be created, shadow ILDSs are not used and there is no need to preallocate shadow ILDSs.
  • For a HALDB, if M-through-V and Y data sets are active, shadow database data sets are named with the names of the corresponding A-through-J and X data sets with a suffix character c added.
  • If all of the following conditions are met, XTIOT (extended task input/output table) is used to allocate each HALDB data set dynamically:
    • All the STEPLIB libraries are APF-authorized.
    • (If one or more OSAM data sets are included) The NON_VSAM_XTIOT option is present in the DEVSUPxx member of PARMLIB.
    • The DBALLABOVE statement is specified in the DFSVSAMP data set.

      If the DFSVSAMP data set is dynamically allocated and if other conditions are met, the DBALLABOVE statement is automatically added to the DFSVSAMP data set. However, if all database data sets are OSAM LDS data sets, the DBALLABOVE statement is not automatically added. This is true even when the NON_VSAM_XTIOT option is not present.