IBM SC34-6814-04 Server User Manual


 
XEIOUT
Invoked after the execution of any EXEC CICS API or SPI command.
XEISPOUT
Invoked after the execution of any EXEC CICS SPI command except those
listed for XEISPIN.
The sequence is:
command EDF XEISPOUT XEIOUT TRACE
Note: Asynchronous processing of these exits may occur if the transaction is
suspended (for example, during file I/O wait). This situation may also occur
under CEDF because CEDF issues its own EXEC CICS commands between
the application’s XEISPIN and XEISPOUT exits.
If, for example, the same GWA is shared between the XEIIN and XEIOUT
exits, you must allow for the possibility of asynchronous processing, in order
to ensure integrity of the data and to prevent unpredictable results.
On entry to the exits, the exit-specific parameter UEPARG contains the address of
the command parameter list.
The command parameter list
The first parameter in the list points to a string of data known as argument 0. The
other parameters point to the values specified for the parameters passed on the
command.
Argument 0 begins with a 2-byte function code that identifies the command.
(Function codes are documented in Appendix A of the CICS Application
Programming Reference and in Appendix B of the CICS System Programming
Reference.) The function code is followed by a 2-byte field containing “existence
bits” which indicate whether arguments are passed on the command. For example,
consider the command:
EXEC CICS LINK PROGRAM('MYPROG')
Here, argument 0 begins with the function code X'0E02' (LINK). Existence bit 1 is
set, indicating that there is an argument 1 (namely, ‘MYPROG’).
The correspondence between command parameters (such as PROGRAM) and their
positions and values in the parameter list (in this case, argument 1, ‘MYPROG’) can
be deduced from the translated code for the particular command.
Important
Modifying CICS commands by tampering with argument 0 is not supported, and
leads to unexpected errors or results.
For example, if an application program is written in assembler or PL/I and you
modify argument 0, you will be writing to program storage (that is, storage occupied
by the program itself), which could cause 0C4 abends. Furthermore, modifying
argument 0 not only alters the CICS command for this execution of the command in
the application program, it changes the CICS command in the virtual storage copy
of the application program. This means that the next task to invoke the same copy
of the program will also execute the modified command.
68 Customization Guide