In IDMS, what are predefined system run units and why are they useful?
Release: All supported releases.
In IDMS, the process of BINDing and FINISHing rununits is expensive. In the processing of an IDMS CV, the system often needs to read data from the various dictionary and catalog areas. These are system-defined databases, so this access requires rununits against the dictionary and catalog.
Because they are system-defined, the subschemas that these rununits will use are known in advance (e.g. IDMSNWKx). Therefore it can be advantageous from a performance perspective for the CV to allocate a certain number of these rununits at startup, and use those rununits for the lifetime of the CV, saving the need to create and destroy the control blocks related to the various rununits every time they are required. These are known as System Run Units.
The number of rununits that will be allocated at startup is defined in the SYSGEN SYSTEM statement in the various RUNUNITS FOR xxx clauses, and in the separate RUNUNITS statement for defining predefined rununits for alternate dictionaries and catalogs.
If there are not enough predefined rununits at execution time, the CV will allocate more and they will be visible in the output of DCMT D RUN UNIT as OVERFLOW rununits. Increasing the number of predefined rununits for a specific category will reduce the number of overflows.