File control EXEC interface API exits XFCREQ and XFCREQC

The XFCREQ exit allows you to intercept a file control application programming interface (API) request before any action has been taken on it by file control. The XFCREQC exit allows you to intercept a file control API request after file control has completed its processing.

Important

The XFCREQ and XFCREQC exits are not called, on the target region, for function-shipped requests. That is, if a file control API request is function-shipped to a remote region, the exits are not called on the remote region. To intercept a function-shipped file control API request on the target region, use the XFCFRIN exit—see File control domain exits, XFCFRIN and XFCFROUT.

The file control API commands intercepted are:
  • READ
  • WRITE
  • REWRITE
  • DELETE
  • UNLOCK
  • STARTBR
  • READNEXT
  • READPREV
  • ENDBR
  • RESETBR.

The XFCREQ and XFCREQC exits can be written only in assembler language.

Using XFCREQ, you can:
  • Analyze the request, to determine its type, the keywords specified, and their values.
  • Modify values specified by the request before the command is executed.
  • Set return codes to specify that either:
    • CICS® should continue with the (possibly modified) request.
    • CICS should bypass the request. (Note that if you set this return code, you must also set up return codes for the EXEC interface block (EIB), as if you had processed the request yourself.)
Using XFCREQC, you can:
  • Analyze the request, to determine its type, the keywords specified, and their values.
  • Set return codes for the EIB.
Both exits are passed nine parameters as follows:
  • The address of the command-level parameter structure
  • The address of a token (UEPFCTOK) used to pass 4 bytes of data from XFCREQ to XFCREQC
  • The addresses of copies of four pieces of return code and resource information from the EIB
  • The address of a token (UEPTSTOK) that is valid throughout the life of a task
  • The address of a recursion count field
  • The address of a 16-byte area that is used if the request has been function shipped.