Exit XFCSREQC
This exit is called after a file ENABLE, DISABLE, OPEN, CLOSE, or CANCEL CLOSE command completes.
- When called
- After a file ENABLE, DISABLE, OPEN, CLOSE, or CANCEL CLOSE command completes. Note: For function-shipped requests, the exit is called on the system where the file is local.
- Exit-specific parameters
-
- UEPFSREQ
- Address of a 2-byte field that indicates the type of file request.
The first byte contains one of the following values:
- UEPFSOPN
- Open request
- UEPFSCLS
- Close request
- UEPFSENB
- Enable request
- UEPFSDIS
- Disable request
- UEPFSCAN
- Cancel file close request.
If the first byte indicates an open request (UEPFSOPN), the second byte shows the type of open:- UEPFSNOP
- Normal open
- UEPFSOFB
- Open for backout.
If the first byte indicates a close request (UEPFSCLS), the second byte shows the type of close:- UEPFSNC
- Normal close
- UEPFSCP
- Close pending
- UEPFSELM
- End of load mode close
- UEPFSIMM
- Immediate close
- UEPFSICP
- Immediate close pending
- UEPFSQU
- RLS quiesce close.
- UEPFILE
- Address of the 8-byte file name.
- UEPFINFO
- Address of a storage area containing information about the file.
The area can be mapped using the DSECT DFHUEFDS, which contains the
following fields:
- UEFLNAME
- The 8-character file name.
- UEDSNAME
- The 44-character dsname of the data set associated with the file.
- UEFSERV
- One byte indicating the SERVREQ settings for this file. The possible
values are:
- UEFRDIM
- Read valid
- UEFUPDIM
- Update valid
- UEFADDIM
- Add valid
- UEFDELIM
- Delete valid
- UEFBRZIM
- Browse valid.
- UEFDSJL
- One byte indicating the automatic journaling options set for this
file. The possible values are:
- UEFJRO
- Journal read-only
- UEFJRU
- Journal read for update
- UEFJWU
- Journal write update
- UEFJWA
- Journal write add
- UEFJDSN
- Dsname has been journaled
- UEFJSYN
- Journal read synchronously
- UEFJASY
- Journal write asynchronously.
- UEFDSVJL
- One byte indicating a further automatic journaling option which
applies to VSAM files only. The value is:
- UEFJWAC
- Write add complete.
- UEFDSJID
- One byte containing the number of the journal to be used for automatic journaling, if any.
- UEFDSACC
- One byte indicating the access method of the file. The possible
values are:
- UEFVSAM
- VSAM file
- UEFBDAM
- BDAM file
- UEFCFDT
- Coupling facility data table
- UEFBCRV
- One byte indicating the recovery attributes of the data set associated
with this file. The possible values are:
- UEFBCFR
- Forward recovery specified
- UEFBCLOG
- Logging specified
- UEFBCVAL
- Flag indicating that recovery attributes are valid.
- UEFFRLOG
- A 1-byte field containing the forward recovery log identifier
in the range 1—99, taken from the recovery attributes in the CICS® file
resource definition. This number corresponds to a CICS internal
journal name of the form DFHJnn, where nn is the forward
recovery log number. CICS maps this journal name to
a forward recovery log stream.
The field is set to zero if forward recovery logging is not specified for the file, or if the forward recovery log stream name has been obtained from the ICF catalog.
- UEFFRCLG
- A 26-byte field containing the name of the forward recovery log stream taken from the ICF catalog, to be used for forward recovery. Set to blanks if not specified in the ICF catalog or if forward recovery is not being used for the file.
- UEFCDATE
- A date (YYYYDDD+) in packed decimal format. This field is set only when the file is the last file to close against the VSAM sphere with which it is associated. It contains the date when activity against the VSAM sphere was brought to an end (quiesced).
- UEFCTIME
- A time (HHMMSST+) in packed decimal format. This field is set only when the file is the last file to close against the VSAM sphere with which it is associated. It contains the time when activity against the VSAM sphere was brought to an end.
- UEFBCAS
- A flag-byte indicating the availability of this data set. If set,
the value is:
- UEPFBCAS
- Data set marked unavailable.
- UEFACBCP
- Address of a read-only copy of the ACB for a VSAM file, or the DCB for a BDAM file. Set only after completion of a successful open.
- UEPFSRSP
- Address of a byte containing the return codes for the request. This
has one of the following values:
- UEFSNORM
- Normal response.
- UEFSWARN
- Warning response.
- UEFSFAIL
- Failure response.
- UEFSPEND
- Pending response. The ‘Pending' response can be returned only after a CLOSE request. It indicates that, as a result of the CLOSE request, a closure is pending on the file, the file is being quiesced. When all activity against the file has completed, it is closed. Note that, if enabled, the XFCSREQ and XFCSREQC exits are driven again, when the actual closure takes place.
- UEPRECUR
- Address of a halfword recursion counter. The counter is set to 0 when the exit is first called, and is incremented for each recursive call.
Note:- The first seven fields of UEPFINFO (UEFLNAME through UEFDSACC) are set for all requests; that is, following an OPEN, CLOSE, ENABLE, or DISABLE request.
- The next three fields (UEFBCRV, UEFFRLOG, and UEFFRCLG) are valid only after a successful OPEN request.
- The fields UEFCDATE through UEFCBCAS are set only after a successful CLOSE request. After all other requests, if the file is already closed, if the closure fails, or if the closure is pending, these fields are set to nulls.
- Exit programs can call EXEC CICS SET commands against the file whose state change leads to the exit being called. However, dependent upon other concurrent activity within the CICS system, there is the potential for a deadlock to occur between tasks that are manipulating the state of the file with such SPI commands.
- Return codes
-
- UERCNORM
- Continue processing.
- UERCPURG
- Task purged during XPI call.
- XPI calls
- All can be used.
- API and SPI calls
- All except EXEC CICS SHUTDOWN and EXEC CICS XCTL can be used.
Note:
- Take care when issuing recursive commands not to cause a loop. For example, it is your responsibility to avoid entering a loop when a file control request is issued from the XFCSREQC exit. Use of the recursion counter UEPRECUR is recommended.
- Exit programs that issue EXEC CICS commands must first address the EIB. See Using CICS services.
- Exit programs that issue EXEC CICS commands, and that use the DFHEIENT macro, should use the DFHEIRET macro to set a return code and return to CICS. See Returning values to CICS.