Coding the exit programs
You can use CICS® services in exit programs invoked from these exits using the XPI or EXEC CICS commands.
You need to consider the following:
- There is a restriction on using the XPI early during initialization: do not invoke exit programs that use the XPI functions TRANSACTION_DUMP, WRITE_JOURNAL_DATA, MONITOR and INQUIRE_MONITOR_DATA until the second phase of the PLTPI.
- There are also restrictions on the use of EXEC CICS commands in
these exits:
- You cannot use EXEC CICS commands to access terminal control services.
- You are strongly advised not to use temporary storage, transient
data, file control, journal control, or DL/I services, because the
resources that you try to access may also be in a state of recovery
and therefore “not open for business”. Attempting to access
resources in these circumstances causes, at best, serialization of
the recovery tasks and, at worst, a deadlock. If you do issue file control requests in programs invoked from these exits, note that:
- If an exit program acquires an area as a result of a file control request, it is the responsibility of the program to release that area.
- An exit program must not attempt to make any file control requests to a file referring to a VSAM data set with a string number of 1, unless no action is specified for that file during the initialization exit.
- Your exit program must not issue EXEC CICS commands if the recovery is as the result of an EXEC CICS SYNCPOINT ROLLBACK request.
- 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.
- Exit programs invoked from these exits must be translated with the NOEDF option, if they issue EXEC CICS commands. See EDF and global user exits.
- Task-chained storage acquired in an exit program is released at the completion of emergency restart processing. However, the exit program should attempt to release the storage as soon as its contents are no longer needed.
- No exit program should reset either the absent or no-action indicators set by the file control backout program.
- Take care when issuing recursive commands not to cause a loop. For example, it is your responsibility to avoid entering a loop when an RC request is issued from these exits.