DFSSPMxx member of the IMS PROCLIB data set
Use the DFSSPMxx member of the IMS PROCLIB data set to override the default buffer definitions for the storage pools managed by the DFSPOOL storage manager.
The storage pools that are managed by the DFSPOOL storage manager include:
- AOIP
- CESS
- CIOP
- CMDP
- DYNP
- EMHB
- FPWP
- HIOP
- LUMC
- LUMP
xx is the 2-character suffix specified in the SPM= startup parameter.
Default storage pool definitions are generated by IMS. Each definition contains information about the pool including the default buffer definitions.
Storage pool | Where the pool is allocated |
---|---|
AOIP | Extended private |
CESS | Subpool 231 ECSA |
CIOP | 24-bit private |
CMDP | Extended private |
DYNP | Extended private |
EMHB | Subpool 231 ECSA |
EPCB | Subpool 231 ECSA |
FPWP | Extended private |
HIOP | Extended private |
LUMC | Subpool 231 ECSA |
LUMP | Extended private |
The buffer size definitions contain the buffer sizes that the storage manager is allowed to choose from when allocating a buffer from the pool. For each buffer size, the definition specifies how many buffers to obtain in the primary block, how many buffers to obtain in secondary blocks, and whether to obtain the primary block when the pool is allocated. If the primary block is obtained during initialization, it is not released during compression.
Syntax
Restrictions
- 2
- Number of buffers in the primary storage allocation
- 2
- Number of buffers in secondary storage allocation
- N
- Primary storage allocation during IMS initialization =
Usage
For all pools, 16 bytes are added to the buffer sizes for prefix and suffix information. For AOIP, CIOP, CMDP, HIOP, EMHB, LUMP, LUMC, and SPAP pools, an additional 8 bytes are added for the overlay detection constant.
IMS Fast Path (IFP) dependent regions also use EMHB pools. IFP dependent regions use a value equal to the largest EMHB as the value for the EPSTESRT buffer. This amount of storage is used in addition to the number of buffers in the primary or secondary storage allocation that you define for EMHB pools in member DFSSPMxx. For example, if you had 100 terminals using 1 buffer of primary storage each, then you would specify 100 as the number of buffers in the primary storage allocation. But if you also had 50 IFP dependent regions using EMHB, the actual number of buffers used in the primary storage would be 150.
For EMHB, the buffer size includes the prefix and data portion. For information about the prefix length, see the EMHBHL field of the expedited message handler block control block that is mapped by the DBFEMHB macro.
AOIP | ||||||||
---|---|---|---|---|---|---|---|---|
Buffer 1 | Buffer 2 | Buffer 3 | Buffer 4 | Buffer 5 | Buffer 6 | Buffer 7 | Buffer 8 | |
Size | 48 | 132 | 256 | 576 | 1048 | 2096 | 4192 | 32 768 |
Primary Allocation | 50 | 500 | 100 | 32 | 16 | 8 | 4 | 4 |
Secondary Allocation | 50 | 1500 | 100 | 32 | 8 | 4 | 2 | 2 |
Obtain primary allocation? | Yes | No | No | No | No | No | No | No |
CIOP | ||||||||
---|---|---|---|---|---|---|---|---|
Buffer 1 | Buffer 2 | Buffer 3 | Buffer 4 | Buffer 5 | Buffer 6 | Buffer 7 | Buffer 8 | |
Size | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16 384 | 32 768 |
Primary Allocation | 64 | 32 | 32 | 32 | 16 | 8 | 4 | 4 |
Secondary Allocation | 32 | 16 | 16 | 16 | 8 | 4 | 2 | 2 |
Obtain primary allocation? | Yes | No | No | No | No | No | No | No |
CMDP, EMHB | ||||||||
---|---|---|---|---|---|---|---|---|
Buffer 1 | Buffer 2 | Buffer 3 | Buffer 4 | Buffer 5 | Buffer 6 | Buffer 7 | Buffer 8 | |
Size | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16 384 | 32 768 |
Primary Allocation | 64 | 64 | 32 | 32 | 16 | 8 | 4 | 4 |
Secondary Allocation | 32 | 32 | 16 | 16 | 8 | 4 | 2 | 2 |
Obtain primary allocation? | No | No | No | No | No | No | No | No |
CESS | ||||||||
---|---|---|---|---|---|---|---|---|
Buffer 1 | Buffer 2 | Buffer 3 | Buffer 4 | Buffer 5 | Buffer 6 | Buffer 7 | Buffer 8 | |
Size | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16 384 |
Primary Allocation | 32 | 32 | 32 | 32 | 32 | 16 | 8 | 4 |
Secondary Allocation | 16 | 16 | 16 | 16 | 16 | 8 | 4 | 2 |
Obtain primary allocation? | Yes | No | No | No | No | No | No | No |
DYNP | |||||||||
---|---|---|---|---|---|---|---|---|---|
Buffer 1 | Buffer 2 | Buffer 3 | Buffer 4 | Buffer 5 | Buffer 6 | Buffer 7 | Buffer 8 | Buffer 9 | |
Size | 256 | 512 | 768 | 1024 | 2048 | 3072 | 4096 | 8192 | 32768 |
Primary Allocation | 32 | 32 | 32 | 32 | 16 | 12 | 8 | 4 | 4 |
Secondary Allocation | 16 | 16 | 16 | 16 | 8 | 12 | 8 | 2 | 2 |
Obtain primary allocation? | No | No | No | No | No | No | No | No | No |
FPWP | ||||||||
---|---|---|---|---|---|---|---|---|
Buffer 1 | Buffer 2 | Buffer 3 | Buffer 4 | Buffer 5 | Buffer 6 | Buffer 7 | Buffer 8 | |
Size | 25 | 51 | 102 | 2048 | 4096 | 8192 | 16 384 | 32 768 |
Primary Allocation | 6 | 6 | 3 | 32 | 16 | 8 | 4 | 4 |
Secondary Allocation | 3 | 3 | 1 | 16 | 8 | 4 | 2 | 2 |
Obtain primary allocation? | No | No | No | No |
HIOP | |||||||||
---|---|---|---|---|---|---|---|---|---|
Buffer 1 | Buffer 2 | Buffer 3 | Buffer 4 | Buffer 5 | Buffer 6 | Buffer 7 | Buffer 8 | Buffer 9 | |
Size | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16 384 | 32 768 | 65 536 |
Primary Allocation | 64 | 64 | 32 | 32 | 16 | 8 | 4 | 4 | 4 |
Secondary Allocation | 32 | 32 | 16 | 16 | 8 | 4 | 2 | 2 | 2 |
Obtain primary allocation? | No | No | No | No | No | No | No | No | No |
LUMC | ||||||||
---|---|---|---|---|---|---|---|---|
Buffer 1 | Buffer 2 | Buffer 3 | Buffer 4 | Buffer 5 | Buffer 6 | Buffer 7 | Buffer 8 | |
Size | 128 | 256 | 512 | 1024 | 2048 | 3064 | 4096 | 33 024 |
Primary Allocation | 32 | 32 | 32 | 32 | 16 | 12 | 8 | 4 |
Secondary Allocation | 32 | 16 | 16 | 16 | 8 | 12 | 8 | 2 |
Obtain primary allocation? | No | No | No | No | No | No | No | No |
LUMP | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Buffer 1 | Buffer 2 | Buffer 3 | Buffer 4 | Buffer 5 | Buffer 6 | Buffer 7 | Buffer 8 | Buffer 9 | Buffer 10 | Buffer 11 | |
Size | 128 | 256 | 512 | 1024 | 2048 | 3064 | 4096 | 5120 | 33024 | 38144 | 65536 |
Primary Allocation | 32 | 32 | 32 | 32 | 16 | 12 | 8 | 8 | 4 | 8 | 4 |
Secondary Allocation | 32 | 16 | 16 | 16 | 8 | 12 | 8 | 8 | 2 | 8 | 2 |
Obtain primary allocation? | No | No | No | No | No | No | No | No | No | No | No |
You can define a maximum of 32 different buffer sizes that
can be used to satisfy requests for storage. The size of the buffer
that is used to satisfy a request is determined on a best-fit
basis.
The FPL= statement is used to specify buffer definition overrides. Multiple buffer definitions are allowed on a single statement. You can have one or more FPL= statements within the DFSSPMxx member. If the member contains more than 32 buffer definitions for a single pool, only the first 32 are used. Remaining definitions are ignored.
DFSSPMxx is not required to initialize IMS. It is intended only to override existing IMS storage pool definitions; therefore, no default member is supplied.
If an FPL= is incorrectly specified, message DFS0639W is issued. One message is issued for each occurrence of an invalid parameter.
Parameters
- FPL=
- Is the required keyword for IMS storage pool buffer override definitions. This keyword must be in position 1. The FPL= statement cannot be continued; however, more than one statement is allowed per pool.
- poolname
- Is the four-character name of the IMS storage
pool. The valid names are:
- AOIP
- CESS
- CIOP
- CMDP
- DYNP
- EMHB
- FPWP
- HIOP
- LUMC
- LUMP
- size
- Specifies the buffer size, in bytes. The value must be a one- to five-digit number between 8 and 65536. The buffer size is rounded up to the next multiple of 8. If the rounded value is not unique, it is discarded. You can specify values in 1K increments; that is, 1K, 2K, 3K, up to 64K.
- pbuf
- Specifies the number of buffers in the primary storage allocation. The value must be a one- to five-digit number between 2 and 65535. If the size of the primary allocation exceeds the upper expansion limit, the default is 2.
- sbuf
- Specifies the number of buffers in secondary storage allocations. The value must be a one- to five-digit number between 2 and 65535. If the size of the primary allocation exceeds the upper expansion limit, the default is 2.
- init
- Specifies whether (Y) or not (N) the primary storage allocation is obtained during IMS initialization. If the primary storage allocation is not obtained during initialization, it is not obtained until it is necessary to satisfy a buffer request. If an upper expansion limit is specified for the pool, and the size of either the primary or secondary storage allocation exceeds the upper expansion limit, the upper expansion limit is set to the default value of 2G-1.
Examples
FPL=CIOP,(248,20,15,Y),(500,20,10,N),(1016,15,8,Y)
FPL=CIOP,(2040,15,8,N),(4088,10,5,N),(8184,10,5,N)
FPL=CIOP,(16K,8,4,N),(32K,4,2,N)
The buffer sizes being defined range from 248 to 32 768 (32K) bytes. Each buffer size is rounded up to the next multiple of 8, and 8 bytes are added for internal processing. Table 3 shows the values used by the Storage Manager when allocating CIOP storage for the definition in the example.
Buffer size | Primary buffer allocation | Secondary buffer allocation | Obtain primary allocation? |
---|---|---|---|
256 | 20 | 15 | Y |
512 | 20 | 10 | N |
1024 | 15 | 8 | Y |
2048 | 15 | 8 | N |
4096 | 10 | 5 | N |
8192 | 10 | 5 | N |
16392 | 8 | 4 | N |
32776 | 4 | 2 | N |