When user exits are invoked

Figure 1 shows the timing of the invocations of the user exits at initialization and termination processing.

Figure 1. Location of user exits
The user exits are invoked at certain points after initialization and termination processing.

In Figure 1, runtime user exits are invoked in the following sequence:

  1. Assembler user exit is invoked for enclave initialization.
  2. Environment is established.
  3. HLL user exit is invoked.
  4. Main routine is invoked.
  5. Main routine returns control to caller.
  6. Assembler user exit is invoked for termination of the enclave. CEEBXITA is invoked for enclave termination processing after all application code in the enclave has completed, but before any enclave termination activity.
  7. Environment is terminated.
  8. Assembler user exit is invoked for termination of the process. CEEBXITA is invoked again when the Language Environment process terminates.

Language Environment provides the CEEBXITA assembler user exit for termination but does not provide a corresponding HLL termination user exit.

CEEBXITA behaves differently, depending upon when it is invoked, as described in the following topics.