Understanding the basics

User exits are invoked under z/OS® Language Environment® to perform enclave initialization functions and both normal and abnormal termination functions. User exits offer you a chance to perform certain functions at a point where you would not otherwise have a chance to do so. In an assembler initialization user exit, for example, you can specify a list of runtime options that establish characteristics of the environment. This is done before the actual execution of any of your application code. Another example is using an assembler termination user exit to request a dump after your application has terminated with an abend.

In most cases, you do not need to modify any user exit to run your application. Instead, you can accept the IBM-supplied default versions of the exits, or the defaults as defined by your installation. To do so, run your application normally and the default versions of the exits are invoked. You may also want to read the sections User exits supported under z/OS Language Environment and Order of processing of user exits, which provide an overview of the user exits and describe when they are invoked.

If you plan to modify either of the user exits to perform some specific function, you must link the modified exit to your application before running, as described in Using installation-wide or application-specific user exits. In addition, the sections Using the Assembler user exit and High level language user exit interface describe the respective user exit interfaces to which you must adhere to change an assembler or HLL user exit.