Description

A  bug has been detected that has caused inconsistent results with regard to the generation of dynamic links (by the Inference Engine) during a Mainframe Cobol analysis. 

Some valid dynamic links are not discovered by the Inference Engine, and the results may vary with the version of the analyzed application, even if the source code for the links has not changed : the missing links may not be the same.

NB : A link is dynamic when the reference to the called object is stored into a variable, then the variable is used by the caller object.

Applicable in CAST Version
Release
Yes/No
8.3.x(tick)
Observed on RDBMS
RDBMS
Yes/No
CSS(tick)
Step by Step Scenario

Let us consider an application containing 4 valid dynamic links L1, L2, L3, L4

  • Analyse V1 of an application
  • Open Enlighten : Links L1 and L2 are missing, L3 and L4 are found
  • Analyse V2 (V2 is very close to V1 and all L1, L2 , L3, L4 are still valid)
  • Open Enlighten : now L1 and L2 are found, but L3 and L4 are missing.
Action Plan
  1. Check that customer expectation is supported : Mainframe Limitations

  2. The problem could be due to the Inference Engine that evaluates the variables content. If the program control flow is complex, then it is possible that it cannot walk through it and resolve the variable.
    Open the analysis log and look for the following Inference Engine summary 

    Analysis log file
    - COBOL dynamic call resolution and paragraph call graph : 
    - 100% on string concatenation
    - 100% on procedure call depth
    - Paragraph cyclic calls detection :
    - 73% on string concatenation
    - 100% on procedure call depth
    - 81% on local procedure complexity

    If those statistics are far from 100% then you need to increase the Inference Engine parameters, which are set low by default for performance purpose. Then re-analyze.
    If some dynamic links are still not found, then proceed to next step

  3. If the callee is generic and it is given a structure in USING clause, perform parametrization (in XML file) in order to tell AIP what the field or subfield containing the final program name
  4. If you do not find the information you are looking for or solution for your problem, in this page, contact CAST Technical Support for reproduction with the following relevant input 
Notes/Comments