Manual definition of Fast Path buffer pools
If you do not use the Fast Path 64-bit buffer manager, you must define the Fast Path buffer pools by specifying the DBBF, DBFX, and BSIZ parameters in the IMS or DBC startup procedures.
To modify the buffer pools, you must change the values of the DBBF, DBFX, and BSIZ parameters and restart IMS. IMS also places all of the Fast Path buffer pools, including the DEDB buffer pools, in ECSA storage.
These parameters do not affect the utility private buffer pools that are used for Fast Path high-speed processing. To locate the utility private buffer pools in 64-bit common storage and not ECSA, include the SETU FPBP64U=Y control statement in the DFSCTL DD statement for high-speed sequential processing (HSSP) and the FPBP64U Y command in the SYSIN DD statement for the High-Speed DEDB Direct Reorganization (DBFUHDR0) utility.
If you do not use the Fast Path 64-bit buffer manager, the Fast Path buffer pool comprises buffers of a size defined at system startup by the BSIZ parameter. The buffer size selected must be capable of holding the largest CI from any DEDB area that is to be opened. The number of buffers page-fixed is based upon the value of supplied parameters:
- The normal buffer allocation (NBA) value causes the defined number
of buffers to be fixed in the buffer pool at startup of the dependent
region. (This number can be specified for the dependent region startup
procedure using the NBA parameter.) The application program in this
dependent region is eligible to receive up to this number of buffers
within a given sync interval before one of the following occurs:
- The buffer manager acquires unmodified buffers from the requesting application program.
- No more buffers can be acquired on behalf of the requesting application program (a number of buffers equal to NBA have been requested, received, and modified). In this case, the buffer manager must acquire access to the overflow buffer allocation (OBA) if this value was specified for this program. If no OBA was specified, then all resources acquired for this program during sync interval processing to date are released.
- The OBA value is the number of buffers that a program can serially acquire when NBA is exceeded. (This number can be specified for the dependent region startup procedure using the OBA parameter.) The overflow interlock function serializes the overflow buffer access, and only one application program at a time can gain access to the overflow buffer allocation. Therefore, the overflow buffer can be involved in deadlocks.
- The DBFX value, which is a system startup parameter, defines a reserve of buffers that are page-fixed upon start of the first Fast Path application program. These buffers are used when asynchronous OTHREAD processing is not releasing buffers quickly enough to support the requests made in sync interval processing.
It follows that:
- BSIZ should be set equal to the largest DEDB CI that will be online. Because the buffer manager does not split buffers to accommodate multiple control intervals, making all DEDB CIs of a same size will provide more optimum use of storage. Even though large block sizes (up to 28K) can be used, this would cause only partial use of the buffer pool if there were many smaller CI sizes.
- The NBA value should be set approximately equal to the normal number of buffer updates made during a sync interval. The NBA value for inquiry-only programs should be small, because the buffers that are never modified can be reused and will all be released at sync time.
- The OBA should be used only in relation to a limited proportion of sync intervals. OBA is not required for inquiry-only programs. In general, the user should be careful to use the OBA value as intended. It should be used to support sync intervals where application program logic demands a variation in total modified buffer needs, thereby requiring access to OBA on an exceptional basis. With BMPs, OBA values greater than 1 should be unnecessary because the 'FW' status code that is returned when the NBA allocation is exceeded can be used to invoke a SYNC call. Invoking a SYNC call would then release all resources. Such application design reduces the serialization and possible deadlocks inherent in using the overflow interlock function.
- The DBFX value should be set, taking into account the total number of buffers that are likely to be in OTHREAD processing at peak load time. If this value is too low, an excessive number of wait-for-buffer conditions are reflected in the IMS Fast Path Log Analysis report.
To optimize the buffer usage, group message processing application programs with similar buffer use characteristics and assign them to a particular message class, so that the applications share the region's buffers.