If a DFHDSSRX SUSPEND or WAIT_MVS call does not specify an
INTERVAL, and gets this RESPONSE with a REASON of
‘TASK_CANCELLED’ or ‘TIMED_OUT’, it indicates that the task has
been purged by an operator or an application, or by the deadlock
time-out facility. In this case, you must set a return code of
‘UERCPURG’ and return.
You must not return the response code ‘UERCPURG’ to CICS for
any other reason. If you attempt to do so, your program will have
unpredictable results.
REASON
This is a mandatory data area that you define in order to receive more
information about the RESPONSE value. You can use (*) to indicate to
CICS that the REASON value is to be placed in the parameter list. On most
XPI calls, standardized reason names (EQU symbols) are provided only for
RESPONSE values of ‘EXCEPTION’ and ‘PURGED’. The REASON values
that accompany responses vary from one XPI function to another, so details
are provided with the descriptions of the XPI calls.
REASON is not applicable where RESPONSE was ‘OK’. In these
circumstances, you should not test the REASON field.
Note: For examples of how to initialize the parameter list, set up parameters, make
the call, and receive output parameters, refer to “Global user exit XPI
examples, showing the use of storage” on page 313. That section includes
both a complete example, and also an example in which each step is
executed separately.
Setting up the XPI environment
The exit programming interface (XPI) does not require the usual CICS transaction
environment, but you do need to set up a special exit programming environment
before you can use any XPI calls. If you are going to use any of the XPI functions
in an exit program, you must include in your program, at a point before you issue
any XPI calls, the macro:
DFHUEXIT TYPE=XPIENV
The expansion of this macro provides the DSECTs that are used in all XPI calls. It
also provides a list of register equates (R0 EQU 0, R1 EQU 1, and so on), that you
can use in your exit program. The other fields generated by the macro are used by
CICS to perform the XPI call processing. You must not use any of these fields: if
you do so, your user exit program will have unpredictable results.
The user exit program should be in 31-bit addressing mode.
XPI register usage
Before you can issue an XPI call from a global user exit program, you must move
the contents of the parameter UEPSTACK (the kernel stack entry) of DFHUEPAR to
the exit program’s register 13.
The XPI function expansion uses registers 0, 1, 14, and 15, so the exit program
must save and restore them if necessary around an XPI call.
For an example of how to use EXEC CICS commands and XPI calls in the same
exit program, see Appendix F, “The example program for the XTSEREQ global user
exit, DFH$XTSE,” on page 877.
312 Customization Guide