DFHFCVR (file control VSAM interface program)
Call mechanism
BALR, obtaining LIFO storage on entry.
Entry address
DFHFCVR. DFHFCVR is link-edited with DFHFCVS. For calls to DFHFCVR from DFHFCVS, the entry point address is known to DFHFCVS from the link-edit. This address is also stored in FC static storage in a field named FC_FCVR_ENTRY. In addition, there is a further “entry address”, UPADEXIT, which is the entry code for the UPAD exit code.
Purpose
The VSAM request interface program is part of the file control component.
This module contains code that issues the VSAM requests, and performs UPAD exit processing in the case of synchronous requests to LSR files, or performs the IOEVENT wait (‘FCIOWAIT’) in the case of asynchronous requests to NSR files.
The module also contains a number of further routines that implement functions required by DFHFCVS.
Called by
- DFHFCBD
- To issue a message
- DFHFCFR
- To wait on a CICS ECB
- DFHFCVR
- Recursively, to issue an ENDREQ request to free a deadlock
- DFHFCVS
- When issuing VSAM requests
- DFHFCVS
- To execute one of the constituent functions
- VSAM
- To invoke the UPAD exit.
Inputs
The FCWSV parameter list, as defined by the DFHFCWS macro, is created in the caller’s automatic storage and addressed by register 1 on the call. The input parameters are:
FCTE address
VSWA address
ECB address
Wait resource type
Message number
Dump code
In addition, DFHFCVR requires access to the TCA for certain of its operations.
Outputs
FCVR_RESPONSE parameter (only), defined as part of the FCWSV parameter list.
Operation
Initialize: Copies the VSAM exit list to FC static storage. This action is performed as part of file control initialization.
VSAM_Request: Issues the request to VSAM. Performs the IOEVENT wait. Handles LSR ‘no buffers’ logical error. Issues change mode request to perform the request under the concurrent TCB if possible.
Get_Strings and Free_Strings: Acquires and frees the required number of shared strings from the LSR pool.
Get_TRANID and Free_TRANID: Allocates and releases a VSAM tranid required during sequential update operations to an LSR file.
Wait_CICSECB: Issues a function request to wait for a CICS ECB to be posted.
Wait_String: Issues a function request to wait for a private string to become available.
Send_Message: Issues a function request to send a message.
How loaded
Link-edited with DFHFCVS to form the DFHFCVS load module, which is loaded by DFHFCRP as part of file control initialization.