View call graph and View full call graph
The CAST Transaction Configuration Center provides a graphical representation of an object's call links to enable you to quickly view how Data Functions and Transactions interact with each other. You can click one object and see a graphical representation of all of the objects that it calls and it is called by.
To view a call graph:
- Move to the AFP Calibration node - Right hand panel
- Right click a Data Function or a Transactional Function and then select either:
- View call graph
- View full call graph
- A new window will open displaying a graphical representation of all the objects that interact with the selected object:
- Blue > Transaction
- Pink > Transaction sub-object
- Black > object
- Red > Data function record
- Green > An item that represents the end of a transaction branch that has no connection to a data function or transaction end point. Only displayed in a "Full Call Graph"
Orange > Transaction end point
- Objects > All objects in the call are represented in the graph.
- Dashed lines > Links resulting from adjustment operations (added or inverted) will be represented with dashed lines (to differentiate them from the genuine links, represented with solid lines).
Note that all objects of a SCC (Strongly Connected Component) group, if any, will all be displayed in the same graph node - typically these are objects in a Transaction that are grouped together when they have cyclical calls with each other. When the number of objects in a SCC exceeds 1000 (or the value of the 'GRAPH_MAX_SCC_ELEMENTS' option), then the group becomes known as an LSCC (Large Strongly Connected Component). Such LSCC groups are automatically excluded from the Transaction call graph, hence ignored during Transaction computation. Having LSCC groups that have been excluded may result in having an incomplete Transaction, which moreover will have a FP value equal to 0 if all paths to Data Functions (or End Points) are going through LSCC groups. SCCs are shown in black above.
Difference between a call graph and a full call graph
It is possible to access two different types of call graph:
The difference between the two is as follows:
The Full Call Graph represents the Call Graph (Entry Points to End Points / Data Entities) AND the dead branches - i.e. branches that have no connection to a data function or transaction end point. These dead branches end with green colored objects (as shown in the example image above).
Note that the EFP (Enhancement Function Point) mode uses transaction Call Graph, whereas the AEP (Automated Enhancement Points) measurement mode (configured in the CAST Management Studio) considers the transaction Full Call Graph. This means that the number of objects in the transaction call graph for objects calculated in AEP mode is higher.
How is the Full Call Graph and Call Graph generated?
When computing the Full Call Graph and Call Graph between an entry point to a data function or an end point, all links are used to compute the graph: inherit, relyon, etc. except Belongs To links and what we call internal escalated links (which are links that come from anonymous classes for example). The only exception to this is when the entry point is a class, in which case Belongs To links are taken into account to continue on methods (i.e. only at the beginning of the transaction).
If there are multiple paths between the same pair of entry and end points, then the related paths are considered as a single transaction.
View source code/properties
The Full Call Graph and Call Graph are both fully interactive. You can right click an object and access a contextual menu offering various functions:
|Copy all content||Use this option to copy the contents of the graph and paste it in another application. You can paste directly: |
|Highlight object links||Use this option to highlight the links between objects to the object selected when the graph was displayed. Right click in white space and select Clear highlighting to remove the highlighted links.|
|Draw links above/below objects||Use this option to force the links to be displayed above or below other objects in the graph.|
|View source code||See View source code for more information.|
|Properties||Use this option to view a properties dialog box that will display the list of objects in the group.|