BLDVRP—Build VSAM resource pool

Use the BLDVRP macro to build a VSAM resource pool.

The format of the BLDVRP macro is:

The BLDVRP macro has a standard form and list and execute forms. The standard form builds a parameter list and passes control to VSAM to build the resource pool. The list and execute forms are described in Use of list, execute, and generate forms of VSAM macros.
label
specifies 1 to 8 characters that provide a symbolic address for the BLDVRP macro.
BUFFERS=(size(abs expression[,Hiperspace]), size(abs expression[,Hiperspace]),...)
specifies the size and number of virtual and Hiperspace buffers in each buffer pool in the resource pool. The number of buffer pools in the resource pool is implied by the number of "size(abs expression,Hiperspace)" groups you specify.

The request for the virtual storage is granted even if the request for Hiperspace™ buffers cannot be completely fulfilled. Some specifications may have Hiperspace buffers allocated while other specifications in the same BLDVRP request may not.

When you process a KSDS, the index component and the data component share the buffers of a buffer pool. When you use an alternate index to process a base cluster, the components of the alternate index and the base cluster share buffers. The components of alternate indexes in an upgrade set share buffers. Buffers of the appropriate size and number must be provided for all components. Each component uses the buffer pool with buffers of either the required size or larger.

LSR/GSR users: To ensure that the buffer pool built by BLDVRP is used, use the access method services DEFINE CLUSTER command to define explicitly the matching data and index control interval sizes. Hiperspace buffer sizes must match the control interval size of the data set components.

size
specifies an integer multiple of 512 or 2048 up to a maximum of 32768 bytes, where n is a positive integer from 1 to 16.
  • CISZ=(n x 512) or (n x 2048)

Requirement: If you specify Hiperspace buffering (Hiperspace), the size must be a multiple of 4096 and match the CISIZE of the data set components.

abs expression
specifies a minimum of 3 up to a maximum of 65535.
Hiperspace
specifies the number of Hiperspace buffers in the buffer pool. The default is 0. The maximum value is 16777215. Specifying many Hiperspace buffers may create virtual storage constraint problems since an 8-byte hash table entry is built in virtual address space for each Hiperspace buffer.

The Hiperspace option is ignored when TYPE=GSR is specified.

FIX={BFR|IOB|(BFR,IOB)}
specifies that I/O buffers (BFR), I/O-related control blocks (IOB), or both, are fixed in real storage. With GSR, IOB includes channel programs. If a program issues BLDVRP and specifies FIX but the program is not authorized to fix areas in real storage, FIX is ignored. To be authorized, a program must either be in supervisor state with protection key 0 to 7, or be link-edited with APF authorization. See z/OS MVS Programming: Authorized Assembler Services Guide for a description of the authorized program facility.

If FIX=IOB is specified for BLDVRP TYPE=INDEX, it is ignored; the FIX=IOB specified for BLDVRP TYPE=DATA is used instead.

Requirement: If FIX is specified, DLVRP must be issued by the same task that issues BLDVRP.

KEYLEN=length
specifies the maximum key length of the data sets that share the resource pool. The default is 255.

Requirement:If your keys are smaller than 255 bytes, specifying the exact key length saves storage space. You must provide lengths for the prime key of each KSDS and for the alternate key of each alternate index that is either used for processing or is being upgraded. Specify 0 if none of the data sets are keyed.

If KEYLEN is specified for BLDVRP TYPE=INDEX, it is ignored; the KEYLEN specified for BLDVRP TYPE=DATA is used.

RMODE31={ALL|BUFF|CB|NONE}
specifies the storage residence of the buffers and I/O related control blocks of the LSR pool identified with the SHRPOOL keyword. The RMODE31 parameter tells VSAM OPEN routines where to obtain storage for the I/O related control blocks and I/O buffers.

If RMODE31 is specified for BLDVRP TYPE=INDEX, it affects the residence of the I/O buffers but is ignored for I/O related control blocks. If RMODE31 is specified for BLDVRP TYPE=INDEX, the RMODE31 specified for BLDVRP TYPE=DATA is used to set these control blocks instead.

The RMODE31 parameter is valid only when TYPE=LSR is specified.

ALL
specifies both I/O buffers and the VSAM I/O related control blocks associated with the pool reside above 16 megabytes.
BUFF
specifies that only I/O buffers reside above 16 megabytes. This parameter is the same as the LOC=ANY parameter in previous releases.
CB
specifies only the VSAM I/O related control blocks associated with the pool reside above 16 megabytes.
NONE
specifies both I/O buffers and the VSAM I/O related control blocks associated with the pool reside below 16 megabytes. This is the default.

In previous releases, the LOC=(BELOW|ANY) parameter was used to specify that buffers in the pool be created above 16 megabytes. The RMODE31 parameter replaces the LOC parameter and the two parameters are mutually exclusive. If both are specified on the BLDVRP macro, the LOC parameter is ignored.

SHRPOOL={0|abs expression}
specifies the identification number of a shared resource pool. This parameter is valid only when TYPE=LSR and RMODE31 are also specified or defaulted.
0
specifies the shared pool with the ID of 0.
abs expression
specifies the shared pool with the ID of number where number can be 0 to 255. The LSR control block and buffer pool residence is determined by the RMODE31 parameter.
MODE={24|31}
specifies the format of the BLDVRP parameter list to be generated.
24
specifies that a standard form (24-bit) parameter list address be generated.
31
specifies that a long form (31-bit) parameter list address be generated. This value is required if the parameter list resides above 16 megabytes.
STRNO=abs expression
specifies the total number of place holders required for all the data sets sharing the resource pool. 1 is minimum; 255 is maximum.

The number should equal the potential number of requests that may be issued concurrently for all the data sets sharing the resource pool. If a request fails because of an insufficient number of place holders (you receive reason code X'40' in the RPL feedback area), you may retry the request. It is assigned a place holder if one has been released. See Table 1 for a description of reason code X'40'.

STRNO is required for TYPE=DATA. For BLDVRP TYPE=INDEX, STRNO is not required and, if specified, is ignored. The STRNO specified by BLDVRP TYPE=DATA is used.

TYPE={LSR|(LSR,DATA|INDEX)|GSR}
specifies whether a local (LSR) or a global (GSR) resource pool is built.
LSR
specifies a local shared resource pool. A maximum of 256 data and 256 index resource pools can be built in one address space. Each resource pool must be built individually.
DATA
specifies that a data resource pool be built. LSR must also be specified or defaulted, and this resource pool must exist before an index pool with the same shared pool ID can be built.
INDEX
specifies an index resource pool be built. LSR must also be specified or defaulted. INDEX must be specified to create a separate index resource pool. If it is not specified, both data and index components use the data pools. A data pool must already exist before an index pool with the same shared pool ID can be built.
For BLDVRP TYPE=INDEX, the following parameters are ignored:
  • FIX=IOB
  • KEYLEN
  • RMODE31 (as it affects the setting of the I/O related control blocks)
  • STRNO
The FIX=IOB, KEYLEN, RMODE31, and STRNO parameters specified for BLDVRP=DATA are used instead. For example:
BLDVRP   TYPE=INDEX,                                             x
         FIX=IOB,                                                x
         KEYLEN=4,                                               x
         RMODE31=ALL,                                            x
         STRNO=10
results in the FIX, KEYLEN, and STRNO parameters being reset to the values specified in BLDVRP TYPE=DATA. The buffer pools reside above 16 megabytes but the control blocks are at the residence specified by BLDVRP TYPE=DATA.
GSR
specifies a global shared resource pool.

Only one BLDVRP TYPE=GSR may be issued for the system for each of the protection keys 0 through 7. The program that issues BLDVRP TYPE=GSR must be in supervisor state with protection key 0 to 7.