If you are using local or global shared resources, you can use
the SCHBFR macro to search a buffer.
The format of the SCHBFR macro is:
[label]
|
SCHBFR
|
[BFRNO=abs expression] ,RPL=address
|
- label
- specifies 1 to 8 characters that provide a symbolic address for
the SCHBFR macro.
- BFRNO=abs expression
- specifies the number of the buffer VSAM is to search first. The
buffers preceding it in the buffer pool are not searched. The default
is 1; that is, the first buffer is searched first. (If the number
is coded in register notation, all registers except 1 and 13 may be
used.)
The meaning of BFRNO depends on the total number of buffers
in the buffer pool and the number of control intervals in the RBA
range given by the RPL ARG parameter. This number is the buffer number
relative to the beginning of the RBA range if the total number of
buffers in the buffer pool is greater than (3/4 x number of CIs in
the RBA range)+3. Otherwise, it is the buffer number on the physical
buffer chain.
Restriction: When a data
set is in a compressed format, records might be compressed and each
buffer might contain an unpredictable amount of data.
- RPL=address
- specifies the address of the request parameter list defining the
SCHBFR request. These RPL parameters have meaning for SCHBFR:
- ACB=address
- AREA=address
- If a buffer is found, the area whose address is specified contains
its address (OPTCD=LOC) or a copy of its contents (OPTCD=MVE). With
compressed data sets, the contents of the buffer will not be in a
readable format. SCHBFR is not recommended for compressed data sets.
- AREALEN=abs expression
- At least 4 with OPTCD=LOC; at least control interval size with
OPTCD=MVE.
- ARG=address
- ARG gives the address of an 8-byte field containing the beginning
and ending control interval RBAs of the range to be searched on. For
compressed data sets, the RBA of another record or the address of
the next record in a buffer cannot be determined using the length
of the current record or the length of the record provided to VSAM.
For extended addressing, the addressof a 16-byte field containing the beginning
and ending 8-byte RBAs of the range.
- ECB=address
- OPTCD=({ASY|SYN},{LOC|MVE})
- TRANSID=abs expression
All other RPL parameters are ignored. RPLs
are assumed not to be chained. Control interval access is assumed.
If
the ACB to which the RPL is related has MACRF=GSR, the program issuing
SCHBFR must be in supervisor state with protection key 0 to 7.