Enlighten - Information - How to Identify cyclical calls when Escalated links are not activated

Purpose

This page describes specific case to find cyclical calls without activating escalated links.

Using the consultant tool provided in page (Avoid cyclical calls and inheritances between packages) it is possible to investigate cyclical calls without the need of escalated link activation.

 Currently (January 2015), This tool is only working for the J2EE diagnostic "Avoid cyclical calls and inheritances between packages" and on Oracle/CSS RDBMS.

Situation

Dashboard shows violations for the rule Avoid cyclical calls and inheritances between packages content. Need to understand the details of cyclic calls in Enlighten.

Figure 1

Expectation

Identify cyclical calls in Enlighten without activating Escalated Links.

Figure 2

Applicable in CAST Version
Release
Yes/No
8.3.x(tick)
8.2.x(tick)
8.1.x (tick) 
8.0.x (tick)
7.3.x(tick)
7.2.x(tick)
7.0.x(tick)
Observed on RDBMS
RDBMS
Yes/No
Oracle Server (tick)
Microsoft SQL Server (tick)
CSS2 (tick)
Details

Steps

  1. For Oracle DBs: Get the three sql scripts (  cyclic_run.sql, cyclic_generate_report.sql) from consultant page (Avoid cyclical calls and inheritances between packages)
  2. For CSS DBs: use the scripts from CSS-Cyclical.zip zip file
  3. On the KB:
    1. Run the cyclic_install.sql script to install the table and the procedure.
    2. Run the cyclic_run.sql script to populate the table.
    3. Run the cyclic_generate_report.sql to generate the script. The result can be copy/pasted from the SQL session to excel file.
      Figure 3
  4. The obtained excel file has the following structure, for each violation: 
    1. A first line showing the highest level of calls: between packages (Shown in red color). For example the first line shows that there is a call link from "packa" package toward "packc" package.
    2. Lines showing the middle level of calls: between classes belonging to packages (Shown in blue). For example here, the second line shows that there is a call link from "packa.class2a" class toward "packc.class2c" class.
    3. Line showing the lowest level of calls: between method in classes belonging to packages (Shown in green). For example here, the third line shows that there is a call link from "packa.class2a.m1c2a" method to "packc.class2c.m1c2c" method.
  5. Construct the cyclical call at method level (using the green lines).

    Figure 4
    1. Drill up to the package level using the "Selection -> add/select parent objects" option.


Notes


Related Pages