IBM Support

IGYPS2121-S DFHC0080 was not defined as a data-name

Troubleshooting


Problem

You are receiving message IGYPS2121-S "DFHC0080" WAS NOT DEFINED AS A DATA-NAME. This occurs when you pre-compile your CICS Transaction Server for z/OS (CICS TS) application program with the COBOL3 translator option and then compile with Enterprise COBOL. You do not receive the error message when you pre-compile with the COBOL2 option and Enterprise COBOL. However, when you run the application it displays garbage on the screen.

Cause

The application itself is using the internal parameter DFHC0080.
  • The COBOL3 translator option does not use or define the DFHC0080 parameter. Therefore, you receive the IGYPS2121-S message when the COBOL3 translator option is used.
  • When the COBOL2 translator option is used, DFHC0080 is included in the Working Storage Section. This is why the IGYPS2121-S message does not appear. However, the contents of DFHC0080 is not valid and probably the reason for the bad screen data.

Diagnosing The Problem

The internal translator parameter DFHC0080 was heavily used during the translation process for older versions of COBOL, like OS/VS COBOL and VS COBOL II.  DFHC0080 was reintroduced as part of the COBOL2 translator option process to eliminate migration problems with the older style programs that have pre-translated copybooks.


Following is the application code that caused the problem:
  9001-CICS-ERROR.
      MOVE EIBRCODE             TO ST-CICS-EIBRCODE.
      MOVE EIBFN                TO ST-CICS-EIBFN.
      IF EIBRESP EQUAL DFHRESP(PGMIDERR)
          MOVE
DFHC0080         TO ST-CICS-PROG-ID
      ELSE
           MOVE EIBDS           TO ST-CICS-EIBDS.
      MOVE LIT-ERR-CICS         TO ST-LCP-CMPL-CODE.
      MOVE LIT-MODULE-NAME      TO ST-LCP-MODULE-NAME.
      EXEC CICS RETURN
                END-EXEC.

If the application had a pre-translated copybook that used DFHC0080, the problem would be transparent. In this case, there were no pre-translated copybooks in the application so there was no reason to use DFHC0080 to determine the program name involved in the pgmiderr return code. EIBRSRCE can be used to determine the program name involved in the pgmiderr.

Resolving The Problem

Rather than using the CICS internal parameter DFHC0080, modify the application to use the EXEC interface block (EIB) field EIBRSRCE. This field contains the symbolic identifier of the resource being accessed by the latest executed command.

The internal translator parameters were not meant to be used as part of the application interface. Rather than maintaining applications subject to internal changes within CICS, the EIB field is a much better application programming interface (API) and will contain just as much information.

[{"Type":"MASTER","Line of Business":{"code":"LOB70","label":"Z TPS"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"ARM Category":[{"code":"a8m0z00000007d1AAA","label":"Developing applications"}],"ARM Case Number":"","Platform":[{"code":"PF035","label":"z\/OS"}],"Version":"5.4.0;5.5.0;5.6.0;6.1.0;6.2.0"}]

Product Synonym

CICS/TS CICS TS CICS Transaction Server

Document Information

Modified date:
05 January 2026

UID

swg21230226