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:
  1. The first seven fields of UEPFINFO (UEFLNAME through UEFDSACC) are set for all requests; that is, following an OPEN, CLOSE, ENABLE, or DISABLE request.
  2. The next three fields (UEFBCRV, UEFFRLOG, and UEFFRCLG) are valid only after a successful OPEN request.
  3. 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.
  4. 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:
  1. 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.
  2. Exit programs that issue EXEC CICS commands must first address the EIB. See Using CICS services.
  3. 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.