VSAM subpool definition
VSAM subpools are defined using the VSRBF control statement, one of the control statements in the DFSVSMxx member of the IMS PROCLIB data set.
Define VSAM subpools using the VSRBF control statement, which is described in DFSVSMxx member of the IMS PROCLIB data set. Specify the required subpools in the DFSVSAMP data set for batch environments or in the DFSVSMxx member of the IMS PROCLIB data set for DB/DC environments. The VSAM buffers and control blocks are above the 16-MB line in most environments.
The minimum number of subpools is one and the maximum is 11. The minimum IMS-calculated number of buffers in a subpool is three, and the maximum is 32,767. This calculation is based on region type, number of PCBs, number of data set groups, and database organization.
A database is in sequential mode if all the following conditions are true:
- The database operates in a batch type region (DLI or DBB)
- The database is referred to by only 1 PCB in the PSB
- The database organization is HISAM, single-segment HISAM, INDEX, or HIDAM accessed through unqualified GN calls
Buffer sizes can be 0.5 KB, 1 KB, 2 KB, 4 KB, 8 KB, and multiples of 4 KB up to 32 KB. IMS accepts any valid CI size up to 32 KB, but always uses a buffer size equal to or larger than the CI size. For example, a 30 KB CI uses a 32 KB subpool. If no VSAM files are used, the VSAM subpools need not be defined. A buffer handler pool is always built.
During DL/I database open, a data set is assigned a specific buffer subpool based on the CI size. The CI size must be equal to or less than the buffer size for the subpool assigned. The data and index components of a key-sequenced data set (KSDS) can be assigned to different subpools if their CI sizes are different and corresponding subpools exist. VSAM can assign a larger CI size to the INDEX component than to the DATA component when defining KSDS data sets that have small record sizes. For example, VSAM can assign a 512-byte DATA CI size and a 4096-byte INDEX CI size. You must be sure to define subpools that accommodate both INDEX and DATA components of a KSDS. (A listing of the VSAM catalog shows the CI sizes assigned to the components.) A single subpool can be defined with buffers large enough to contain the longest CI, or you can define several subpools that more nearly fit the different-sized CIs used by the programs.
Related reading: Refer to IMS Version 15.2 System Administration for additional information about buffer pool structure and buffering techniques.
Dynamic database buffer pool definition
In addition to defining VSAM subpools in the DFSVSMxx member of the IMS PROCLIB data set, VSAM subpools can be changed dynamically, while IMS resources are actively in use. Define database buffer pool definitions dynamically by specifying parameters in the DFSDFxxx member of the IMS PROCLIB data set and then issuing a type-2 UPDATE POOL TYPE(DBAS) command.
The DFSDFxxx buffer pool values that are brought online dynamically take the place of the values specified in the DFSVSMxxx member. However, the DFSDFxxx member is not read for subpool definitions during IMS startup. The changes made to the DFSDFxxx member are processed only for dynamic changes initiated by the UPDATE POOL TYPE(DBAS) command. The DFSVSMxx member is still required to contain subpool definitions for IMS startup.