This article provides guidelines on how to properly size IDMS program pools.
Release: All supported releases.
To get size and load statistics, a list of the programs in the pool and pool map for a particular program pool, use the DCMT D ACTIVE PROGRAMS command in one of four formats:
DCMT D ACTIVE PROGRAMS will display this info for the 24-bit non-reentrant Program Pool.
DCMT D ACTIVE REENTRANT PROGRAMS will display this info for the 24-bit Reentrant Pool.
DCMT D ACTIVE XA PROGRAMS will display this info for the 31-bit non-reentrant Program Pool.
DCMT D ACTIVE XA REENTRANT PROGRAMS will display this info for the 31-bit Reentrant Pool.
An example of the stats displayed:*** Display of XA Reentrant Pool ***
Pages in pool 34936
Bytes in pool 17887232
Loads to pool 191
Pages loaded 25505
Load conflicts 0
CURRENT ALLOCATIONS
Pages allocated 25505 73% of pool
Pages in use by one program 204 1% of pool
Pages in use by multiple programs 0 0% of pool
High-Water mark of pages allocated 25505 73% of pool
Loads into unallocated space 191 100% of loads
Loads overlaying program not in use 0 0% of loads
Loads overlaying program in use 0 0% of loads
An optimally sized pool is one that is large enough that all of the programs that can be loaded into the pool can fit at the same time.
The two most important statistics that will indicate if the pool is large enough are the last two Loads overlaying program not in use 0 0% of loads
Loads overlaying program in use 0 0% of loads
These stats should always be 0. The Loads overlaying programs in use will most likely always show 0, but the Loads overlaying programs Not in use may be non zero and this is an indication that the pool is not large enough.
When a request to load a program into a program pool occurs, IDMS will first look for contiguous UNUSED space in the pool large enough to fit the program. If there is not sufficient unused space, IDMS will find programs not currently in use and use that space to load the new program, marking the overlaid programs as such so that if they are called at a later time they would need to be re-loaded into the pool.
If it is possible to make the program pools large enough so that no programs ever need to be overlaid to fit a new program load, that is optimal.