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
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:
where:1000 + X + 2124 + FRE x 44
- X
- Is the greater of:
((3270V/8) x 2200)
or14336
- 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:
where:(10 + X) or 30, whichever is greater
- 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.
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
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.
|
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
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