QBUFMAX= parameter for procedures
Use the QBUFMAX= parameter in procedure to specify the 1- to 7-digit number that indicates the maximum number of message queue buffers for the queue pool.
The maximum number that you can specify is 9999999.
The value of QBUFMAX cannot be less than the value that is specified on QBUF, which specifies the initial number of queue buffers. If the value of QBUFMAX is less than the value of QBUF, IMS internally sets the value of QBUFMAX to the value of QBUF or to 200, whichever is greater.
If this parameter is not specified or it is specified but it is 0 or an invalid value, the number of buffers in the queue pool is unlimited.
This parameter is valid only in a shared-queues environment.
If the value specified on QBUFMAX is large, for example QBUFMAX=9999999, the number of buffers might never reach the specified number due to 31-bit storage limitations in the control region address space.
Queue Manager allocates the buffers only if storage is available, so the actual number of buffers that the Queue Manager can allocate depends on the amount of storage available in the address space. The amount of storage can be estimated by adding 72 to the size of the message queue buffer and multiplying the total by the QBUFMAX value.
The message queue buffer size can be specified by using QBUFSZ. If the buffer size is not specified, the size is obtained from the large message record size. If an invalid value is specified for QBUFMAX, IMS ignores QBUFMAX and issues message DFS1920I. IMS behaves as if QBUFMAX was not coded (the maximum number of queue manager buffers allocated depends on the amount of 31-bit storage available).
The QBUFMAX parameter can be modified across an IMS warm start or an IMS emergency restart.
A runaway transaction can use many queue buffers. To limit the number of application program output segments that are inserted by each transaction, you can use the SEGNO parameter on the TRANSACT macro, which can help prevent queue buffer shortage conditions.