IBM SC34-6814-04 Server User Manual


 
An exit program invoked at an exit that does not support the use of EXEC CICS
commands must not call a task-related user exit program (TRUE). Calling a
TRUE is equivalent to issuing an EXEC CICS command. Exceptions to this rule
are programs invoked from the XFCFRIN and XFCFROUT exits, which may call
a TRUE. TRUEs are described in Chapter 2, “Task-related user exit programs,”
on page 267.
Note: In exits which support the use of EXEC CICS file control commands, file
commands that form a related sequence (such as EXEC CICS STARTBR,
EXEC CICS READNEXT, and EXEC CICS ENDBR) must all be issued in the
same invocation of the exit program.
For example, if one invocation of an exit program issues an EXEC CICS
STARTBR command, and the next invocation of the exit program for that
same task issues an EXEC CICS READNEXT command, the READNEXT fails
with an INVREQ condition.
v All exit programs that issue EXEC CICS commands must first address the EIB.
This is not done automatically using the DFHEIENT macro, as is the case with
normal EXEC assembler-language programs. Therefore, the first EXEC
command to be issued from an exit program must be EXEC CICS ADDRESS
EIB (eib-register), where “eib-register” is the default register (R11) or the register
given as a parameter to the DFHEIENT macro.
All 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.
Note:
v If your global user exit program does not contain EXEC CICS commands,
do not use the CICS command-level translator when assembling the
program.
v Do not make non-CICS (for example, RACF
®
or MVS
) system service
calls from global user exit programs.
v If an operating system request causes a wait, your whole CICS system
will stop until the operating system request has been serviced.
Using EXEC CICS and XPI calls in the same exit program
There are a number of exits where you can use both EXEC CICS commands and
XPI calls, but you should ensure that there is no conflict in the usage of register 13.
To avoid such conflict, use the DATAREG option on the DFHEIENT macro (see
“XPI register usage” on page 312 for information).
For an example of how to use EXEC CICS commands and XPI calls in the same
global user exit program, see Appendix F, “The example program for the XTSEREQ
global user exit, DFH$XTSE,” on page 877
Using channels and containers
Global user exit programs can access channels and containers created by
application programs. They can also create their own channels and pass them to
programs which they call.
For information about channels and containers, see the CICS Application
Programming Guide.
Chapter 1. Global user exit programs 5