Writing global user exit programs
You must write global user exit programs in assembler language and they must be quasi-reentrant. However, if your user exit program calls the XPI, it must be fully reentrant.
Only certain register values can be used for your exit program. See What registers can be used for your exit program for details. In particular, the address of a parameter list is passed to the user exit program in register 1. The list contains some standard parameters that are passed to all global user exit programs (see DFHUEPAR standard parameters), and the list might also contain some exit-specific parameters that are unique to the exit point from which the exit program is being invoked. For further information, see Parameters passed to the global user exit program.
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 Transferring data between programs using channels.
Restrictions on the use of fields as programming interfaces
Some CICS® data area control block field definitions must not be used as part of a CICS application programming interface. The Data areas contains definitions of the control block fields that form part of the Product-sensitive and General-use programming interfaces of CICS. Fields that are not defined in the CICS data areas reference as either Product-sensitive programming interface or General-use programming interface fields are not intended for your use as part of a CICS programming interface.
Compile considerations for debugging global user exit programs with EDF
If you use the Execution Diagnostic Facility (EDF) to debug your applications, you must take care when compiling exit programs that issue EXEC CICS commands.
Normally, if an exit program issues EXEC CICS commands, these are displayed by EDF, if the latter is active. They appear between the Start of Command and End of Command screens for the command that caused the exit to be driven. If you want to suppress the display of EXEC CICS commands issued by your exit program, you must specify the NOEDF option when you translate the program. You should always specify NOEDF for programs in a production environment.
If an exit program that may be invoked during recovery processing issues EXEC CICS commands, you must translate it with the NOEDF option. Failure to do so may cause EDF to abend.