DEFINE BUFFPOOL on z/OS

Use the MQSC command DEFINE BUFFPOOL to define a buffer pool that is used for holding messages in main storage.


Use MQSC commands

For information on how we use MQSC commands, see Performing local administration tasks using MQSC commands.

We can issue this command from source 1. For an explanation of the source symbols, see Use commands on z/OSĀ®.

Synonym: DEF BP

DEFINE BUFFPOOL

DEFINE BUFFPOOL ( buf-pool-id ) BUFFERS(1000)BUFFERS(integer)LOC(BELOW)LOCATION(ABOVE)PAGECLAS(4KB)PAGECLAS(FIXED4KB)NOREPLACEREPLACE


Usage notes

  1. Specify DEFINE BUFFPOOL commands in a data set identified by the CSQINP1 DD concatenation in the queue manager started task procedure.
  2. Use the DISPLAY USAGE TYPE(PAGESET) command to display buffer pool information (see DISPLAY USAGE on z/OS ).
  3. Use the ALTER BUFPOOL command to dynamically change the settings of a predefined buffer pool (see ALTER BUFFPOOL on z/OS ).


Parameter descriptions for DEFINE BUFFPOOL

If more than one DEFINE BUFFPOOL command is issued for the same buffer pool, only the last one is processed.

    (buf-pool-id)
    Buffer pool identifier.

    If IBM MQ Version 8.0 new functions are enabled with OPMODE, this parameter is an integer in the range zero through 99. Otherwise, this parameter is an integer in the range zero through 15.

    BUFFERS( integer )
    This parameter is required and is the number of 4096 byte buffers to be used in this buffer pool.

    If the value of the LOCATION parameter is BELOW, the minimum value of buffers is 100 and the maximum value is 500,000. If the value of the LOCATION parameter is ABOVE, then valid values are in the range of 100 to 999999999 (nine nines). The storage used for buffers in a buffer pool with LOCATION ABOVE is obtained in multiples of 4MB. Therefore specifying a BUFFERS value which is a multiple of 1024 will make the most efficient use of storage.

    See Buffers and buffer pools for guidance on the number of buffers we can define in each buffer pool.

    When defining a buffer pool care should be taken to ensure that there is sufficient storage available for it either above or below the bar. For more information, see Address space storage.

    LOCATION(LOC)(BELOW or ABOVE)
    LOCATION and LOC are synonyms and either, but not both, can be used.

    The LOCATION or LOC parameter specifies where the memory used by the specified buffer pool is located.

    This memory location can be either ABOVE (64 bit) or BELOW (31 bit) the bar. Valid values for this parameter are BELOW or ABOVE, with BELOW being the default.

    ABOVE can only be specified if IBM MQ Version 8.0 new functions are enabled with OPMODE. BELOW can be specified regardless of the value of OPMODE and has the same effect as not specifying the LOCATION parameter.

    When altering a buffer pool, you should take care to make sure that there is sufficient storage available if increasing the number of buffers, or changing the LOCATION value. Switching the location of the buffer pool can be a CPU and I/O intensive task. You should perform this task when the queue manager is not being heavily used.

    For more information, see Address space storage.

    PAGECLAS( 4KB or FIXED4KB )

    Optional parameter that describes the type of virtual storage pages used for backing the buffers in the buffer pool.

    This attribute applies to all buffers in the buffer pool, including any that are added later as a result of using the ALTER BUFFPOOL command. The default value is 4KB, which means that pageable 4KB pages are used to back the buffers in the pool.

    4KB is the only valid value if the buffer pool has its location attribute set to BELOW. If the buffer pool has its LOCATION attribute set to ABOVE, it is also possible to specify FIXED4KB. This means that fixed 4KB pages, which are permanently in real storage and will never be paged out to auxiliary storage, are used to back the buffers in the buffer pool.

    FIXED4KB can only be specified if IBM MQ Version 8.0 new functions are enabled with OPMODE, whereas 4KB can be specified regardless of the value of OPMODE.

    The PAGECLAS attribute of a buffer pool can be altered at any time. However, the alteration only takes place when the buffer pool switches location from above the bar, to below the bar, or the other way round. Otherwise, the value is stored in the log of the queue manager and is applied when the queue manager next restarts.

    When you specify PAGECLAS(FIXED4KB) the whole buffer pool is backed by page-fixed 4KB pages, so ensure that there is sufficient real storage available on the LPAR. Otherwise, the queue manager might not start, or other address spaces might be impacted; for more information, see Address space storage.

    See IBM MQ Support Pac MP16: IBM MQ for z/OS - Capacity planning & tuning for advice on when to use the FIXED4KB value of the PAGECLAS attribute.

    REPLACE/NOREPLACE
    Optional attribute describing whether this definition of a buffer pool overrides any definition that might already be contained in the log of the queue manager.

      REPLACE
      This definition of the buffer pool overrides the definition stored in the log of the queue manager, if there is one. If the definition in the log of the queue manager is different from this definition, the differences are discarded and message CSQP064I is issued.

      NOREPLACE
      This is the default value, and provides the same behavior as with previous releases of IBM MQ. If there is a definition of the buffer pool in the log of the queue manager that is used, and this definition is ignored.

Attention: The queue manager records the current buffer pool settings in checkpoint log records. These buffer pool settings are automatically restored when a queue manager is later restarted. This restoration occurs after processing of the CSQINP1 data set. Therefore, if we have used ALTER BUFFPOOL since the buffer pool was last defined, any DEFINE BUFFPOOL command in CSQINP1 has been ignored at restart, unless the REPLACE attribute has been specified.

Switching from Version 8.0 new function mode to compatibility mode

When you switch from OPMODE=(NEWFUNC,800) or OPMODE=(NEWFUNC,900) to OPMODE=(COMPAT,800) or OPMODE=(COMPAT,900) the following occurs:
  1. Any buffer pools with an ID greater than 15 are marked as suspended. This means that these buffer pools cannot be used, deleted, or altered until Version 8.0 new functions are enabled again. Information about the buffer pools is kept in check point log records until Version 8.0 new functions are enabled again.

    Any page set that uses a suspended buffer pool is also suspended. Information about the suspended page set is also kept in check point records.

    While suspended, any object definitions or messages in the page set are unavailable. An attempt to use a queue or topic which uses the suspended page set results in an MQRC_PAGESET_ERROR message

    While suspended, a page set can be associated with a different buffer pool by using the FORMAT function of the utility program CSQUTIL, specifying TYPE(REPLACE). We can then issue a DEFINE PSID command to bring the page set back into use with a different buffer pool. Note: All units of recovery that involved the suspended page set, except units that are indoubt, will have been backed out by the queue manager when the page set was last used. Indoubt units of recovery can be resolved when the page set is again in use by the queue manager.
  2. Any buffer pools with an ID of 15 or less that have their LOCATION attribute set to ABOVE, will have the LOCATION attribute switched to BELOW, and their PAGECLAS attribute set to 4KB.