z/OS DFSMS Macro Instructions for Data Sets
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


GETPOOL—Build a buffer pool (BDAM, BISAM, BPAM, BSAM, QISAM, and QSAM)

z/OS DFSMS Macro Instructions for Data Sets
SC23-6852-02

The GETPOOL macro builds a buffer pool in a storage area acquired by the system. The system places the address of the buffer pool control block in the BUFCB field of the data control block. If you choose to issue the GETPOOL macro for QSAM and QISAM, then issue it either before an OPEN macro is issued or during the OPEN data control block exit routine for the specified data control block. Otherwise, the system will build an appropriate buffer pool for you. Do not issue the GETPOOL macro if you wish QSAM buffers to be above the 16MB line.

If you choose to issue the GETPOOL macro for BDAM, BISAM, BPAM, or BSAM, then issue it before you issue the GETBUF macro. Remember that if the BUFNO parameter is supplied in the data control block before completion of the OPEN DCB exit routine, then OPEN will build a buffer pool and your program should not issue GETPOOL. You may choose to supply BUFNO when the data set is allocated to the program (on the DD statement) and not clear BUFNO in the DCB before completion of the OPEN DCB exit routine.

The GETPOOL macro may be issued in 24- or 31-bit addressing mode. When issued in 31-bit addressing mode, all addresses must be valid 31-bit addresses.

Note: BSAM cannot support 64 bit real storage for any tape devices that do not support 64 bit IDAWs. Applications that use BSAM to process a tape data set can experience ABEND0D3 and/or ABENDB00 due to the inability to use a 64-bit IDAW by the device.

The format of the GETPOOL macro is:

dcb address—RX-Type Address, (2-12), or (1)
specifies the address of the data control block to which the buffer pool is assigned. Only one buffer pool can be assigned to a data control block.

The value you specify can be either a positive or a negative value. If this parameter has the high-order bit on (for example, to signify the last address in a list), this bit must be reset to zero. Otherwise, the address will be treated as a negative value. When issued in 31-bit addressing mode, the input DCB address must be a clean 31-bit address. The resulting buffer pool always resides below the 16MB line.

number-of-buffers—symbol, decimal digit, absexp, or (2-12)
specifies the number of buffers in the buffer pool to a maximum of 255.
buffer length—symbol, decimal digit, absexp, or (2-12)
specifies the length, in bytes, or each buffer in the buffer pool. The value specified for the buffer length must be a doubleword multiple; otherwise, the system rounds the value specified to the next higher doubleword multiple. The maximum length that can be specified is 32760 bytes. For QSAM, the buffer length must be at least as large as the value specified in the block size (DCBBLKSI) field in the data control block.
(0)
The number of buffers and buffer length can be specified in general register 0. If (0) is coded, register 0 must contain the binary values for the number of buffers and buffer length as shown in the following illustration:

Your program releases the buffer pool and the associated storage area by issuing a FREEPOOL macro after issuing a CLOSE macro for the data set indicated in the specified data control block.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014