An online CA IDMS COBOL program abends with code UFF3
search cancel

An online CA IDMS COBOL program abends with code UFF3

book

Article ID: 4034

calendar_today

Updated On:

Products

IDMS IDMS - Database IDMS - ADS

Issue/Introduction

An online COBOL program running under CA 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

This can happen in any CA IDMS environment, under any operating system; where LE/370 COBOL is implemented.

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 MULTIPE ENLCAVE 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.

Resolution

With the MULTIPE ENLCAVE 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. You need to analyze all programs called up to the point of the abend not just the program named in the error message.

Solution

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. You can turn it off 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 refer to the CA IDMS DML Reference - COBOL, which can be found here:

https://techdocs.broadcom.com/us/en/ca-mainframe-software/database-management/ca-idms-reference/19-0/dml-reference-for-cobol/considerations-for-ibm-language-environment.html