BUFPOOLS macro

The BUFPOOLS macro statement specifies default storage buffer pool sizes for the DB/DC and DBCTL environments. It is no longer used in IMS 15, the only way to specify buffer pool sizes is to use the corresponding keywords in the DFSPBxxx member of the IMS PROCLIB data set or in the JCL. If the BUFPOOLS macro is included in the IMS Definition Stage 1, the IMS system generates an MNOTE return code 2 with message G116 issued. This topic serves reference purposes only because the macro is obsolete.

The storage buffer pool sizes that are specified on the BUFPOOLS macro are used unless otherwise expressly stated for that buffer or pool at control program execution time for an online system.

The Work Area Pool (WKAP) cannot be specified during system definition. When the system is initialized, the WKAP is automatically defined with a value of 5000. You can override this at execution time by using the WKAP= operand in the IMS, DBC, or DCC procedures, or in the DFSPBIMS, DFSPBDBC, or DFSPBDCC members of the IMS.PROCLIB data set.

This topic includes the following information:

Dynamic definition

Buffer pools cannot be dynamically defined.

Supported environments

The BUFPOOLS macro can be used in the IMS DB/DC and DBCTL environments.

Syntax

Read syntax diagramSkip visual syntax diagram BUFPOOLS DMB=10000number,EPCB= size,FORMAT=size1,FRE= numberPSB=10000numberPSBW=10000number,SASPSB=( size1, size2)

Positional parameters

The BUFPOOLS macro does not include any positional parameters.

Keyword Parameters

To find which parameters apply to your IMS configuration, refer to Selecting the appropriate macros to define your system.

DMB=
Specifies the size of the DMB control block pool. The default is 10,000 bytes. The maximum allowable specification is 9,999,000 bytes. The minimum allowable specification is 8 bytes.
EPCB=
Specifies the size of the EPCB pool. If Fast Path is generated, the default size is 8 KB. Otherwise the default EPCB pool size is 0. The maximum allowable specification is 9,999,000 bytes. The storage for this pool resides in ECSA.

After working this calculation for each PSB, determine the largest PSB that might execute in a region, and add all the results for all regions. This sum is the value for your EPCB pool. You can override this pool specification using the EPCB parameter on the IMS procedure.

See Table 2 for more information about calculating EPCB storage for PSBs.
FORMAT=
Specifies sizes of the message format buffer pool.

size1 specifies the size of the message format buffer pool. The minimum specification is 2000 bytes; the maximum specification is 99,999,000 bytes. This parameter is ignored when no unit types requiring MFS are included in the defined system. If unit types that require MFS are included in the defined system and this parameter is not specified, the default value is calculated. size2 is no longer supported.

The default value is calculated as follows:
1000  +  X  +  2124  +  FRE  x  44
where:
X
Is the greater of: ((3270V/8) x 2200) or 14336
3270V
Is the number of 3270 VTAM® terminals
FRE
is the number of specified or defaulted FREs
FRE=
Specifies the number of fetch request elements (FREs) for loading MFS control blocks into the message format buffer pool. The number specified can range from 10 to 99,999. If the size of the buffer pool is increased, the number of FREs should also be increased. Otherwise, the additional space cannot be used.
The default value is calculated as follows:
(10  +  X) or 30, whichever is greater
where:
X
(3270V/8) x 4
3270V
Is the number of 3270 VTAM terminals
PSB=
Specifies the size of the PSB control block pool if the DL/I address space option is not used. The SASPSB parameter specifies the size of the PSB control block pool when the DL/I address space option is used. The default is 10000 bytes, with a maximum of 9,999,000 bytes. The minimum allowable specification is 8 bytes.
PSBW=
Specifies the size of the PSB work area pool. The default is 10,000 bytes. The maximum allowable specification is 9,999,000 bytes. The minimum allowable specification is 8 bytes.
SASPSB=
Is used only if the DL/I separate address space option is selected. If you are not using this option, the size of the single PSB control block pool is specified with the PSB parameter.

With the DL/I address space option, two PSB control block pools exist. Size1 is the size of the pool in the z/OS® CSA. Size2 is the size of the pool in DL/I local storage. The maximum allowable for either is 9,999,000 bytes.

Important: Due to control block size increases in z/OS, PSBs are slightly larger and require more space in the PSB pool.

Both size1 and size2 must be specified. Normally, the value of size2 should be larger than that of size1, and neither value can be 0.

The ACBGEN utility output provides information about the relative PSB pool sizes. You should examine the output of ACBGEN before coding SASPSB.

The defaults are:
size1
20% of the PSB specification on BUFPOOLS
size2
80% of the PSB specification on BUFPOOLS

For example, SASPSB=(20000) is invalid, because size2 is missing. The defaults apply only if the SASPSB parameter is not specified.

Because IMS no longer processes the BUFPOOLS macro, the only way to specify buffer pool sizes is to use the corresponding keywords in the DFSPBxxx member of the IMS PROCLIB data set or in the JCL. If no value is provided, IMS will assign default sizes for each buffer pool. The following table shows the BUFPOOLS macro keywords, their corresponding overrides in the DFSPBxxx member of the IMS PROCLIB data set or JCL, and the default value IMS will assign if no value is provided.

Table 1. Default value for DFSPBxxx or JCL keywords
BUFPOOLS keyword DFSPBxxx member or JCL override Default value Description
DMB= DMB= 12288 bytes Size of the DMB control block pool
EPCB= EPCB= 8192 bytes Size of the EPCB pool
FORMAT= FBP= 20480 bytes Size of the message format buffer pool
FRE= FRE= 30 Number of fetch request elements (FREs) for loading MFS control blocks into the message format buffer pool
PSB= PSB= 12288 bytes Size of the PSB control block pool in subpool 231 storage if the DL/I address space option is not used
PSBW PSBW= 12288 bytes Size of the PSB work area pool
SASPSB=(size1,) CSAPSB= 4096 bytes Size of the PSB control block pool in the z/OS common storage area (CSA) if the DL/I address space option (LSO=S) is used
SASPSB=(,size2) DLIPSB= 8192 bytes Size of the PSB control block pool in the DL/I address space if the DL/I address space option (LSO=S) is used

Usage information

Table 2 shows how to calculate EPCB storage for PSBs. The calculation is for MPP, IFP, and BMP region types that use Fast Path resources (DEDBs, MSDBs, or EMH).
Table 2. Calculating EPCB storage for PSB
EPCB type Size Total virtual storage requirements for this EPCB type (in bytes) Total

IOPCB

28 bytes

28

_______K

Alt-Resp

28 bytes

28 x (the number of Alt-Resp PCBs)

_______K

MSDB

1 byte 1

The sum of all MSDB PCBs

_______K

DEDB

1 byte 1

The sum of all DEDB PCBs

_______K

Total EPCB storage for this PSB _______K
1
Recommendation: This value can vary by release. The size of IMS control blocks can increase from release to release. Any change in the control block size would therefore impact the calculation of the pool size. Verify the control block size associated with the version of IMS that you are using before making these calculations.
Formula for calculating storage required for one MSDB EPCB in the EPCB pool:
        4 byte pointer 
   +    length of DBFEPCB for MSDBs
For example, a calculation to find the storage needed for a single MSDB PCB for IMS might look like the following:
         4 bytes
    +   76 bytes
 -------------------------
 Total: 80 bytes needed in the EPCB pool for this single MSDB PCB
Formula for calculating storage required for one DEDB EPCB in the EPCB pool:
        4-byte pointer
   +    length of DBFEPCB for DEDBs
   +   (length of DBFSNMT) * (number of SENSEG statements + 2)
   +   (length of DBFMLTE) * (number of SENSEG statements)
   +    length of the key feedback area (maximum is 255; for HSSP PSBs only)
For example, a calculation to find the storage needed for a single DEDB PCB might look like the following:
         4 bytes
    +  192 bytes
    +   56 (8 bytes * 7)
    +  580 (116 bytes * 5)
--------------------------
Total: 832 (X'340') bytes needed in the EPCB pool for this single DEDB PCB

Example of JCL to code BUFPOOLS

The following figure shows how to code BUFPOOLS. If the DL/I address space option is not used, the single PSB pool size is 80,000 bytes. If the option is selected, the PSB pool size in the CSA is 16,000 bytes, and the DL/I local storage pool size is 64,000 bytes. This example also specifies a 40,000-byte DMB pool.

 BUFPOOLS PSB=80000,SASPSB=(16000,64000),
 DMB=40000