v 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.
v 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” on page 5.
– 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” on page 10.
– Exit programs invoked from these exits must be translated with the NOEDF
option, if they issue EXEC CICS commands. See “Using EDF with global user
exits” on page 6.
v 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.
v No exit program should reset either the absent or no-action indicators set by the
file control backout program.
v 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.
Enabling the exit programs
To enable these exits, you must do one of the following:
v Specify the system initialization parameter
TBEXITS=(name1,name2,name3,name4,name5,name6), where name1 through
name6 are the names of your user exit programs for XRCINIT, XRCINPT,
XFCBFAIL, XFCLDEL, XFCBOVER, and XFCBOUT.
v Enable the exits during the first stage of initialization using a PLTPI program.
If you use the TBEXITS parameter to enable the exits, a global work area of 4
bytes is provided. If you use a PLTPI program, you can select the size of the global
work area. You can also enable more than one exit program for use at each exit
point; the TBEXITS parameter allows only one exit program at each exit point.
PLTPI processing is described in “Chapter 4. Writing initialization and shutdown
user log record recovery program exits
Chapter 1. Global user exit programs 231