What does IMS Index Builder do?

IMS Index Builder streamlines index creation, reorganization, maintenance, and recovery. The tool creates multiple indexes in one job step, and allows you to rebuild IMS indexes, rather than recover or reorganize them using the traditional unload and reload processes used for the primary data store.

IMS Index Builder eliminates the need to image copy indexes, which means faster recovery and reorganization times and that new indexes can be added quickly without reorganizing the primary databases.

For any supported hierarchical direct (HD) database and for HISAM databases, IMS Index Builder scans the existing physical database and builds IMS primary and secondary indexes. For non-partitioned databases, it creates one or more new secondary index databases. A full database reorganization and initial HALDB load are no longer necessary.

IMS Index Builder provides an easy-to-use, one-step procedure for building all IMS index types including primary, secondary, and indirect list data sets.

Product features

Designed for high performance, IMS Index Builder supports partitioned and non-partitioned databases with the following features:

  • Provides full support for IMS High Availability Database (HALDB) and for Database Recovery Control (DBRC).
  • Integrates with IMS Tools Base IMS Tools Knowledge Base for storing and retrieving SYSPRINT output data.
  • Extracts data that is needed for prefix resolution from the DFSURWF1 file and writes it to a new data set, improving the performance of prefix resolution.
  • Builds non-PSINDEX IMS secondary indexes by using the DFSURWF1 file as input, which was created by the IMS reorganization reload, high performance load utility, or initial load utility.
  • Builds non-PSINDEX IMS secondary indexes by using output file DFSURIDX from the IMS Prefix Resolution utility.
  • Builds PSINDEX IMS secondary indexes by using the WFP output files that are generated by IMS High Performance Load.
  • Provides a new sequential scan technology for building primary, secondary, and ILDS indexes. Comparisons to prior release functionality show improved elapsed time.
  • Uses both parallel sort and parallel load whenever more than one index is being built, reducing the time that is needed to build multiple indexes of a single physical database.
  • Applies parallel partition scan to HALDB.
  • Builds a copy of the primary index of HIDAM database using the existing primary index as input.
  • Creates new primary indexes of HIDAM and PHIDAM databases where input is based on a scan of the physical database without using the existing primary index.
  • Builds and/or initializes IMS ILDS, primary, and secondary index data sets.
  • Does not assume that ILDS and primary indexes exist and completely rebuilds them.
  • Enables you to build the ILDS and primary and secondary indexes in one JOB step.
  • Rebuilds selected PSINDEX partitions, and offers support for using Partition Selection Exits (PSE) when rebuilding PSINDEXes.
  • Supports secondary indexes with non-unique keys.
  • Supports IDCAMS delete and define functionality for data sets being built based on a user-provided procedure library so that no preliminary IDCAMS job steps are required.
  • Improves usability by routing system messages from the subordinate address spaces to the main address space.
  • Propagates RACF® identity to subordinate address spaces so all database and data set access is performed with the same identity as the master address space.
  • Issues IMS commands (/DBD, /DBR, and /STA) automatically to prevent updates to the databases while indexes are built and start the databases and indexes when indexes are built.

Performance benefits

IMS Index Builder is designed to minimize the elapsed time needed to build one or more secondary index databases. Elapsed time is a primary concern at most installations because the need for high data availability keeps shrinking the batch window.

IMS Index Builder achieves high performance by using parallel processing and by overlapping and integrating processing steps.

Significant performance features of IMS Index Builder are:
  • IMS Index Builder uses subordinate address spaces (SAS) for parallel prime data scans and index data sorts.
  • Records are loaded into each index database in parallel.
  • Records to be sorted are passed to sort as they are read in or generated, which means that the scan steps and the sort steps overlap. When buffered sort is used, the records are not written on disk first, bypassing much of the I/O activity. Striped sort splits the sort process into consecutive steps.
  • Run time optimized code (race code) is implemented in the index keys encoding process to reduce CPU time.

Sorts processing

IMS Index Builder generates sort control statements and internally calls the sort product that is provided by the user. When buffered sort is applied, IMS Index Builder provides a sort file size estimation.
  • When indexes are reused, the size of the existing indexes is taken as the sort file size for the index.
  • When indexes are deleted or defined, the allocations are used to estimate the index sort file size, and you can use the INDEX statement to override the estimation.
  • For sequential scan internal sorts, the sum of the estimated index sort file sizes is used, and you can use the SORTFSZ control statement to override the estimated value.