IMS Index Builder restrictions

Certain restrictions apply to using IMS™ Index Builder.

IMS Index Builder does not support the following types of indexes:

  • Secondary or primary indexes that are DOS compatible
  • Shared secondary indexes

Shared secondary indexes

IMS Index Builder does not support shared secondary indexes.

When multiple secondary indexes are in the same database, that database is a shared index database. Although using a shared index database can save some main storage, the disadvantages of doing so generally outweigh the small amount of space that is saved.

Some of the disadvantages of using a shared index database are:
  • HALDB does not support shared secondary indexes.
  • Performance can decrease when multiple application programs simultaneously use a shared index database.
  • Search time is increased.
  • Using shared secondary indexes restricts the overall size of a database.
  • Maintenance, recovery, and reorganization of a shared index database can decrease performance across all secondary indexes.
  • When you reorganize a database that is accessed using a secondary index, IMS automatically builds a new secondary index. All of the other indexes in the shared index database must be copied to the new shared index database.

For more information about shared secondary indexes, see IMS Database Administration.

Start of change

IMS exit routines

This restriction applies only to HALDBs.

IMS Index Builder calls the following IMS exit routines:
  • Secondary Index Database Maintenance exit routine
  • Segment edit/compression exit routine
If these routines are called in subordinate address spaces while processing HALDBs, values in some fields in the following IMS control blocks, which are passed by IMS Index Builder, might be incompatible with the IMS control region.
  • Partition Specification Table (PST)
  • Field Description Blocks (FDB) pointed to by the Physical Segment Description Block (PSDB)
If either of the IMS exit routines refers to the fields in these IMS control blocks, specify a value of 2 for the MAXTASKS control statement so that the routines are called in the master address space.
End of change