CEEBXITA behavior during enclave termination

The CEEBXITA assembler exit is invoked after the user code for the enclave has completed, but before the occurrence of any enclave termination activity. In other words, the assembler user exit for termination is invoked when the environment is still active. For example, CEEBXITA is invoked before the storage report is produced (if you requested one), data sets are closed, and CODE is invoked for enclave termination.

The assembler user exit permits you to request an abend. You can also request a dump to assist in problem diagnosis. Because termination activities have not yet begun when the user exit is invoked, the majority of storage has not been modified when the dump is produced.

You can request the abend and dump in the assembler user exit for all enclave-terminating events including:
  • The situation that occurs in PL/I when the ON condition (including ERROR or FINISH) is raised and one of the following conditions is true:
    • The program does not have an appropriate ON-unit.
    • The ON-unit does not terminate with a GOTO.
    • The GOTO is not allowed.
    This rule applies only to the conditions that cause termination of the program.
  • Return from the main routine
  • A Debug Tool QUIT command
  • An HLL stop statement such as:
    • C exit()
    • COBOL STOP RUN
    • PL/I STOP or EXIT
    • Fortran STOP
  • An unhandled condition of severity 2 or above

If a dump is requested in the user assembler exit and an unhandled condition has occurred, this dump will overwrite the dump taken by TERMTHDACT(UADUMP).