Description

This page explains how to deal with an issue called "Big Potato", occurring because of multiple {Ae} (Internally Escalated Access Execute) links. It consists of multiple false links between several implementations of an interface or an abstract class and several resources. This sometimes happens when the application is developed using a programming style called Interface-Based Programming, and uses many different resources. This is called "funnel" programming.




Funnel programming (fig1) leads to false links (fig2)







For example, an Interface DataAccessObject has two methods : Object read() and save(Object obj). It is implemented by two classes, FileDataAccessObject and DBDataAccessObject. To a human reader, it is obvious that FileDataAccessObject will use a file to store data, whereas DBDataAccessObject will use a database table.

Because of the programming style, in some cases the inference engine is unable to find out which implementation is called. So it considers that both implementations use both resources (the file and the database table). This issue leads to wrong links and wrong FP calculation.

Observed in CAST AIP
Release
Yes/No
8.3.x(tick)
8.2.x(tick)
Observed on RDBMS
RDBMS
Yes/No
Oracle Server(tick)
Microsoft SQL Server(tick)
CSS3(tick)
Step by Step Scenario

1. Run the Analysis.

2. Check in Enlighten.


Solution

The Internally Escalated Access Execute {Ae} links are created during the analysis. The issue here is that the Inference Engine is not able to validate and resolve all the links. The solution could be to improve the Inference engine computation by increasing the Inference Engine Procedure Call Depth Parameter or by creating a KB assistant tool to delete the false links.

Follow the below steps:

Inference Engine settings

  • Set the Inference Engine value from 50000 to 100000.
  • Run the analysis again. Then the Inference Engine should be able to remove wrong links from the analysis.


KB Assistant tool

 If the Inference Engine still keeps the wrong links after increasing the Procedure Call Depth, then you may have to manually remove the false links.

  •  The first step is to identify all the false links. For this, you must check in the source code which implementations of the interface (or abstract class) use which resources.

           If method m1 from class A1 only uses SQL Table T1, then you will have to remove all the links between method m from class A1 and tables T2... TN.

           Defining the links to remove is a delicate task and you may need the assistance of an expert consultant or a subject matter expert at this stage. This is generally not as simple as the example shown in the screenshot and you might need a CAST Technical Support assistant.

  •  The second step is to delete the false links using the KB Update Assistant Tool. This is accessible from CAST-MS, tab "Content Enrichment", section "Tools after analysis".
       
  • In the KB Update Assistant Tool, write a script to insert the false links into table CI_NO_LINKS.
  • Then click "Run Tool". After execution, the false links should have been deleted from the Knowledge Base.

If the above steps do not solve your issue contact CAST Technical Support. with the following 479920132

Relevant input

  • CAST Support Tool (CST) - alias Sherlock export with the following options Export Logs, Export Configuration files, Export CAST Bases with Management Base, and Knowledge Base Export source code.
Notes