An online COBOL program running under IDMS can abend with the following error message:
DC027005 Vnn Tnnn TASK:xxxxxxxx PROG:xxxxxxxx ABENDED WITH CODE UFF3 AND REASON CODE 0007
Other reason codes are also possible.
Releases: All supported releases.
An error code UFF3 is the same as a U4083 error code, it comes from the IBM Language Environment (LE) runtime system.
Under an IDMS/DC or IDMS/UCF environment, this can occur when a program is run with the MULTIPLE ENCLAVE option enabled but it does not satisfy the requirements for sharing an LE enclave. By turning on the multiple enclave option for a program you allow it to share the same LE enclave with multiple programs. This option is used to improve the performance of LE programs but there are some restrictions in its use.
With the MULTIPLE ENCLAVE option enabled, programs cannot perform the following statements:
DC RETURN NEXT TASKCODE taskcode. (or any other subparameter)
TRANSFER CONTROL to program NORETURN USING (...).
TRANSFER CONTROL to program XCTL USING (...).
TRANSFER CONTROL to program USING (...). (the default is NORETURN)
However, the following statements are allowed:
GOBACK
DC RETURN. (without any subparameters)
TRANSFER CONTROL to program LINK USING (...).
TRANSFER CONTROL to program RETURN USING (...).
Note that the UFF3 abend will not necessarily occur in the program that breaks the above rules. It can occur in a program called later in the application. All of the called programs up to the point of the abend must be analyzed for the above code, not just the program named in the error message. For more information on how to find the program, see article UFF3 abend in an LE cobol program in IDMS - finding the offending program.
There are two ways to resolve the problem:
DCMT VARY PROGRAM progname MULTIPLE ENCLAVE OFF
For more details on the multiple enclave option, see Considerations for IBM Language Environment.