UFF3 abend in an online IDMS/DC COBOL program
search cancel

UFF3 abend in an online IDMS/DC COBOL program

book

Article ID: 4034

calendar_today

Updated On:

Products

IDMS IDMS - Database

Issue/Introduction

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.

Environment

Releases: All supported releases.

Cause

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 (...).

Resolution

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:

  1. Modify the program to conform to the above restrictions. 
  2. Turn off the multiple enclave option for the program. This can be done dynamically with a DCMT command: 

    DCMT VARY PROGRAM progname MULTIPLE ENCLAVE OFF 

    To make this change permanent, specify MULTIPLE ENCLAVE IS OFF in the PROGRAM statement in the SYSGEN and re-generate the system.

Additional Information

For more details on the multiple enclave option, see Considerations for IBM Language Environment.