Sequence Diagram views

The Sequence Diagram view presents execution flow of an application according to the notation defined by UML. It is a useful view when used with either the Log Analyzer or the Profiling Tool.

The Sequence Diagram views are available only if the collection of execution flow information has been enabled, which you do when launching or attaching to the application to be profiled.  Select the profiling option, My application is too slow then, from the Details options, select Show Execution flow graphical details.  

The Sequence Diagram view presents a sequence of causal dependent events, where events are defined as method entries and exits as well as outbound calls and return calls.  Specifically, it presents interactions between class instances. Those interactions have the form of method calls and call returns. The implementation of the Sequence Diagram tool does extend that definition to one which generalizes actors of interactions as well as their means. In other words, the views provided by the tool are able to present not only the interactions of classes and class instances, but also those among threads, processes, and hosts. This extended use of the execution flow notation is motivated by the need to provide a hierarchy of data representation, which is necessary for large-scale, distributed traces.

Execution data displayed in the sequence diagram view is acquired from an instance of a Java Profiling Agent.  The Java Profiling Agent supplies data which enables the tool to generate the execution flow of a Java application that runs in a specific Java Virtual Machine (JVM) to which the agent is attached.

Display

Here is an example of a Sequence Diagram display:

column of intermittent red bars, then to the right, 6 columns of scattered white bars with arrows pointing left and right among them; a button in lower right corner labelled Overview

Time

Time is represented in the bar along the left edge of the diagram. However, the scale indicates elapsed time between events by a reddish bar and by the corresponding numerical values that appear when you hover your cursor over the bar.   

Screen capture of part of the Sequence Diagram view

In the example above, the bright red bar corresponds to the period between the first and second events.  Its brightness indicates a long time interval.  The pale red rectangle further down, being less bright, indicates a shorter time interval. The 99.9 (seconds) figure is the exact interval between the first and second events. It is obtained by hovering the mouse over the bar.

Objects

Each column to the right of the time line displays interactions with a selected object:

fragment showing 511 Class Loader above a column of scattered white bars

The column is headed by the name of the object, what it is, its identifier, and its name.  Interactions with the object are depicted by an inbound solid blue line that terminates in its column and an outbound broken line: right-pointing arrow terminating at a white bar

Data acquisition hierarchy

You can view the sequence of execution flow from different levels of abstraction, starting with class interactions, through interactions among threads, or process interactions, up to hosts interactions across a network. The importance of this multilevel data presentation becomes obvious for the monitoring of e-business applications.

Depending on the application infrastructure, you may need to view the execution flow on different levels of the monitoring hierarchy. For a local application, the level of process or host may be adequate, but for a distributed application, the monitor level, which provides a view of the execution across multiple hosts, could be more appropriate. Viewing the execution of a distributed application from the monitor level may reveal some points of interest which can  direct application developers to any of the lower level graphs to perform more detailed viewing or analysis. For example, in the case of an application consisting of servlets and enterprise beans that are distributed across a cluster of hosts, the preliminary view of the host interactions may lead a software developer to view sequence diagrams of object interactions for specific processes. These diagrams will show only selected data, representing part of the execution within an enterprise bean or servlet container, on the level of corresponding business components.

To navigate the data acquisition hierarchy, you can use the Profiling Monitor view.  Each of the hierarchy levels of the profiling resources provides all the applicable types of sequence diagrams. The following types of diagrams are available:

Controls

The Sequence Diagram view contains the following groups of controls:

Toolbar controls

Search A button with stylized icon
Enables you to search the view for classes or objects:

search window showing two tabs: class search and object search, above a name field and a results pane; buttons at bottom read Search and Cancel
 
Time zoom in A button with stylized icon and out A button with stylized icon
View either more detail over a shorter period or less detail over a longer period.
Home A button with stylized icon
Returns the view to its original size and configuration.

Display controls

To see more detail about any displayed object or interaction, hover your cursor over it.

To see a graphical overview of the entire timeline, click the Overview button. On finding an interesting section of the diagram, you can move the main view to that position by double-clicking the spot or dragging and dropping the image of the main view within the overview boundaries.

To see the methods that are executing during this time, double-click the red rectangle. They are highlighted with red.

Pop up controls

The pop up controls consist of the same controls as in the toolbar and also:

Refresh Views
To update all Profiling and Logging views.
Show Object Reference
To show the Object References table for the selected class.
Open Source
To open an editing view containing the selected source code, which must be in the workbench.
 

Related concepts
Overview of the Profiling Tool
Overview of the Log Analyzer
Log file correlation
 

Related tasks
Profiling an application
Correlating log files
Determining the time between events

Related reference
Log interactions view
Log thread interactions view
Profiling monitor view
Log view
Time