DC027005/UFC6 IDMS-DC Cobol abends after recompile under Cobol 6.x
search cancel

DC027005/UFC6 IDMS-DC Cobol abends after recompile under Cobol 6.x


Article ID: 236931


Updated On:




After compiling an IDMS-DC Cobol program under Cobol release 6.x the task abends with

DC027005 Vnn Tnnn TASK:<taskcode> PROG:<pgmname> ABENDED WITH CODE UFC6  AND REASON CODE 0001



UFC6 (4038) is a very generic LE Cobol abend that could be caused by a number of programmatic errors.

----------------- V=IBM P=Z/OS LANG ENV MSGS R=V2R4 I=U4038 ------------------
********************* Text Below Copyright (c) 2022, IBM *********************
U4038 (X'FC6')                                                                
Explanation:  Language Environment has encountered a software-raised or       
user-raised unhandled condition of severity 2 or greater and will terminate.  
If the TERMTHDACT run-time option is set appropriately, a Language            
Environment dump (CEEDUMP) will be generated, however, no system dump will be generated for this abend.                                                     
System action:  Enclave terminated.                                           
Programmer response:  Examine the resulting Language Environment dump         
(CEEDUMP), if available, or the Language Environment message file to help     
determine the cause of the unhandled condition. See z/OS Language Environment 
Debugging Guide for information on collecting and using Language Environment  
dumps. See z/OS Language Environment Programming Reference for details on the TERMTHDACT run-time option.  


 In this case, further testing showed it was the recently added ABD parameter on the SSRANGE option that caused the UFC6 abend.

  Client's compile specified SSRANGE(NOZLEN,ABD) option that caused the abend AND LE was not producing any explanatory msg when the SSRANGE ABD option was set if the CEEUOPT specified TERMTHDACT=(QUIET), which is the default CEEUOPT parameter delivered with RHDCLEFE.

  Testing showed an explanatory warning msg will be produced if the compile option is changed to SSRANGE(NOZLEN,MSG).  The messages on the IDMS Log would be like the following:

IDMS DC128010 Vnnn Tnnn IGZ0304W The reference to table <tablename> by verb number nn on line nnn in program <pgmname>
IDMS DC128010 Vnnn Tnnn          addressed an area outside the region of the table. 

  or if the compiler option is SSRANGE(NOZLEN,ABD) and the CEEUOPT in RHDCLEFE is changed to have TERMTHDACT=(TRACE) rather than the default of TERMTHDACT=(QUIET), you would get an abend but would also get an explanatory message like the following:

DC128010 Vnnn Tnnn IGZ0006S The reference to table <tablename> by verb number nn on line nnn addressed an
DC128010 Vnnn Tnnn          area outside the region of the table.                                    
DC128010 Vnnn Tnnn          From compile unit <pgmname> at entry point <EPname> at compile unit offset +nnnnn