Step 1—Programming User Exits

Write your exit modules. Once the modules are compiled/assembled, linked, and placed in the appropriate libraries, you are ready to identify them to tableBASE. This is done through macro statements. Step 2—Defining Exits using DK1TX072 describes how to identify your exits to tableBASE.

It is important to keep in mind that exit routines that are run often (for example, before and after every command) may affect performance. Moreover, as exit routines may be invoked many times and may be called upon for tasks that a high-level language may not be able to perform efficiently, users may want to consider writing user exits in IBM Assembler.

Programmers should carefully read the sections describing parameter usage. For information on how parameter data is passed when an exit is invoked, see Parameter Data Passed to Exits.

R15 is reserved for future use and should be set to zero before returning from a user exit to tableBASE. Upon return from the exit, if R15 is not zero, the following warning message will be issued in the JES log:

DK100100W Unexpected non-zero return code from user exit

Note:
User exit modules must be reentrant, RMODE(ANY), AMODE(31), and must NOT issue tableBASE commands.

Sample JCL for assembling and link editing a user exit program can be found in your.prefix.CNTL(ALTUSREX).