Purpose

This page explains and provides suggestions to resolve the warning message   "Mainframe.09: Cannot resolve DD name XXXX"  found in  the Mainframe analysis log.

Data definition (DD) statements define the data sets that a Cobol program or procedure uses when it runs. JCL Steps declare the Cobol program to execute, along with its datasets

The name field contains a one-through eight-character name, known as a DDNAME, that identifies the DD statement.

The figure below explains the relationship between JCL Job or Step, Cobol Program, and Data Set

Figure 1

In the figure, DD name INPUT1 is related to Data Set MY.INPUT. It is declared in the JCL Step that launches the Cobol Program then used in the program. In the program, file F is assigned to DD name INPUT1

Warning "Cannot resolve DD name" can occur when analyzing a Cobol Program : in most cases the root cause is a missing link from the JCL Job/Step that contains the DD declaration and the Cobol Program that uses it.

Observed in CAST AIP
Release
Yes/No
8.3.x(tick)
Observed on RDBMS
RDBMS
Yes/No
CSS4(tick)
Step by Step Scenario
  1. Run Analysis 
  2. Notice warning in the analysis log
Impact on Analysis Results and Dashboard

Corresponding object is not resolved and links are missing

Action Plan
  1. Check that the JCL file containing the DD declaration is present in the source: 
    1. Use a text editor like Notepad++ and search for the DD name in the warning in all .jcl files
    2. If the DD name is not present then this is expected, ask for additional files from app team
    3. Else go to next step
  2. Check the configuration to find out whether JCL file and the Cobol file belong to the same analysis unit and have been analyzed in the same execution unit i.e. you can find parsing messaged for both in the same analysis log:
    1.  Search analysis log for the JCL file that has been identified in step 1 
    2. If you do not find a parsing message for the file then change analysis configuration and consider analyzing all code under a single analysis unit
    3. Else go to next step
  3. Check if the link between the JCL Step and the Cobol program exists
    1. If the link between the 2 objects is not direct. i.e the JCL Step declaring the DD calls Cobol Program PROG1, which calls Cobol Program PROG2, which uses the DD. In this case, the DD name cannot be resolved, this is a known limitation of the Mainframe analyzer. Check info in Mainframe Technical notes - Unknown/unresolved objects
    2. Link between JCL Step and Cobol Program may be missing because of the use of JCL Symbols. For this, please refer to official documentation Mainframe JCL symbols
  4. Check if the DD card refers to external file via JCL Parameters. In this case, the analyzer cannot parse this information and create the objects and links. Please refer to official documentation :

    Mainframe - Batch utilities using external parameter files

  5. If the above step does not solve your problem, then contact CAST Technical Support with the Relevant Input to reproduce issue.
Notes/comments