Buffers are added or removed according to whether the value is more than or less than the
current allocation (which can be shown by the DISPLAY USAGE command).
If there is insufficient storage, of the type specified by the PAGECLAS attribute to add the
requested number, as many as possible are added.
The command runs asynchronously. Message CSQP023I is sent to the console when the command is
complete.
ALTER BUFFPOOL cannot be issued from CSQINPT.
If you have made changes to buffer pools by using the ALTER BUFFPOOL command, particularly if
you have reduced the buffer pools by large quantities, you should recycle the queue manager as soon
as possible, to clear up any storage fragmentation caused by the change in buffer pool
size.
Failure to recycle the queue manager, might result in you receiving the following error
code, ABEND878-10 - Virtual private region depleted, caused by the fragmentation of
region storage in the IBM® MQ MSTR address
space.
Certain buffer pool parameters require OPMODE to
be set to NEWFUNC at IBM MQ for z/OS 9.0.0. If you
enable these parameters at IBM MQ for z/OS 9.1.0 or later, and
subsequently migrate back to IBM MQ for z/OS 9.0.0, ensure that you
are using OPMODE=NEWFUNC at those releases. Affected
parameters are:
A LOCATION value of ABOVE
A PAGECLAS value of FIXED4KB
A buf-pool-id greater than 15
Parameter descriptions for ALTER BUFFPOOL
(buf-pool-id)
Buffer pool identifier.
This parameter is an integer in the range zero through 99.
This parameter is optional 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 you 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.
Note: Creating a large buffer pool can take several minutes depending on size of the buffer pool and
machine configuration. In some cases message CSQP061I might be output.
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.
Attention: From IBM MQ 9.1, LOCATION(BELOW) is deprecated and you should use
LOCATION(ABOVE) only.
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.
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.
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.
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.
The current value of PAGECLAS can be checked by issuing the
DISPLAY USAGE PSID(*) command. Doing this also results in a CSQP062I message being
output, if the current value of PAGECLAS is different from the value in the log
of the queue manager. For example:
Buffer pool 7 currently has LOCATION(ABOVE) and
PAGECLAS(4KB) specified. If ALTER BUFFPOOL(7)
PAGECLAS(FIXED4KB) is specified, the buffer pool continues to be backed by pageable 4KB
pages as the LOCATION has not been changed.
Buffer pool 8 currently has LOCATION(BELOW) and
PAGECLAS(4KB) specified. If ALTER BUFFPOOL(8) LOCATION(ABOVE)
PAGECLAS(FIXED4KB) is specified, the buffer pool is moved above the bar and has its
buffers backed by fixed 4KB pages, if any are available.
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.