Language Environment and IMS condition handling are coordinated, which means that if a program interrupt or abend occurs when your application is running in an IMS environment, the Language Environment condition manager is informed whether the problem occurred in your application or in IMS. If the problem occurs in IMS, Language Environment, as well as any invoked HLL-specific condition handler, percolates the condition back to IMS.
With Language Environment run-time option TRAP(ON), Language Environment continues to support coordinated condition handling for the PLITDLI and ASMTDLI interface invoked from a PL/I routine.
With IMS/ESA Version 3 with PTF UN4928 or IMS/ESA Version 4, Language Environment also supports the coordinated condition handling for CEETDLI, CTDLI from a C routine, CBLTDLI from a COBOL program, AIBTDLI from a PL/I program, and ASMTDLI from a non-PL/I program.
Note that if a program interrupt or abend occurs in your application outside of IMS, or if a software condition of severity 2 or greater is raised outside of IMS, the Language Environment condition manager takes normal condition handling actions described in the z/OS Language Environment Programming Guide. In this case, in order to give IMS a chance to do database rollback, you must do one of the following:
The assembler user exit you provide should check the return code and reason code or the CEEAUE_ABTERM bit, and requests an abend by setting the CEEAUE_ABND flag to ON, if appropriate. See the z/OS Language Environment Programming Guide for details.