wM Integration Server Service Profiler

Online Help



About Page

This page contains information about the current release of the Service Profiler.

Information Page

This page contains information about Wrightia and additional documentation complementary to the Service Profiler.

Administration Page

This page contains the editing of settings that affect the overall tool behavior:

Licensing Page

This functionality is only accessible to users associated with the Administrators ACL.

The entry page shows the current licensing information (Expiration Date, Status, etc.) and can be used to set a new valid License Key.

The functionality option is Set New License Key and not Edit License Key. There is a difference: for the first, the current License Key is never shown.

Property Description
Licensed To Name of the customer the License Key has been emitted to.
License Level Currently, there is only Standard.
Expiration Date The date when this license expires.
Evaluation Whether the License Key is for evaluation or is definitive.
Status A text defining the current status of the License key.
Licensed Service Volume The maximum service nodes identified in a snapshot.
Service Top Volume

A count of how many services have been considered to the already taken snapshots, since the tool is up and running or since the last reset. This value is updated each time a snapshot is taken and it will be kept between start/stop cycles of the tool.

When it exceeds the Licensed Service Volume, an icon is added. The count is an indication of the dimension of the universe of services being actually profiled, and also to help establish the adequate licensed value if an upgrade is required.

When the icon appears, it means that not all individual services will be shown in the dashboards and this icon is assigned to the counters of those unlicensed services.

The Reset 'Service Top Volume' Counter option resets the counter.

'View Per Service' Analysis Page

This is a sample Analysis Tool viewing the generated hierarchical snapshot in a flat representation, accumulating per Service.

The source gathered data is an invocation tree where the same Service may be called from different parents, but this particular view disregards the service interrelations and sums all values for each individually identified Service into a single accumulator set.

All detail columns can be sorted by clicking on the corresponding column header. Clicking multiple time toggles between Ascending and Descending. Default (first click) sorting order depends on the Data Type: numeric and time columns are sorted Descending while the others are Ascending.

Snapshot Header Description
Sample Key A key that identifies the current snapshot.
Server Name The net name of the Integration Server host.
Begin Time The timestamp of when the profiling was started.
End Time The timestamp of when the snapshot was requested.
MTC

Max Thread Count.

This value contains the maximum number of threads that were used in parallel to execute the listed services.

It is useful to give the user an idea of what percentage of defined Service Threads were (or are being) used during the profiling session.

If the number of threads is equal, or close, to the maximum defined in the Integration Server, there may be services spending time waiting for a thread to become free.

Snapshot Details Description
Package The name of the Package where the profiled Service is defined.
Service The fully-qualified runtime name of the profiled Service.
Type The Service Type:
  • Flow Service
  • Java Service
  • Adapter Service
  • C/C++ Service
  • Webservice
  • XSLT Service
  • Warning!
    Service name not found.
    This may happen if the package is disabled or the Service is renamed during profiling.
  • Unlicensed count
    Aggregated counts for all found services that fall out of the Licensed Service Volume (see Licensing Page).

The service type icon is also a link to the BrowseSnapshot page, where the occurrences of the corresponding service will be automatically highlighted.

The link is made on the icon, and not on the Service column, to save horizontal space on the page: due to webMethods styling for links, their text appears as bold and this would widen considerably the Service table column.

Call Count The accumulated number of times the Service has been invoked.
The Service can be called from a number of other Services and has a Call Count for each of those calling nodes. However, this value sums all those counters.
Error Count The accumulated number of exceptions the Service has raised.
The Service can be called from a number of other Services and has an Exception Count for each of those calling nodes. However, this value sums all those counters.
Own Code Timings for the profiled Service Own Code. This means that is does not include the time spent in Services it calls, only the time it took executing its own functionality code.
With Child Code

Timings for the profiled Service Own Code plus the time spent in Services it calls.

The With Child... columns have defined a tip label showing the minimum and maximum timing values the corresponding Service took on a single call. Just place the mouse cursor over the table cell and the tip will appear for a short while.

Elapsed Clock time passed from the beginning of the call until it ends.
Spent Actual time spend in the CPU doing work.

Additionally, there are filtering options that further limits the amount of data when the page is refreshed, by means of clicking on the [Refresh] button. These options are:

'Code Coverage' Analysis Page

This is a sample Analysis Tool that, based solely on the number of Services for each package present in the snapshot against the universe of services defined in those packages, calculates a percentage of services used per package.

The Package and the % columns can be sorted, by clicking on the corresponding column header. Clicking multiple time toggles between Ascending and Descending.

Each package name (that contains Services defined) is presented as a link to a new page where the complete list of Services from that package is presented, together with an indication on whether is has been used/invoked or not while the profiler was Active.

Additionally, there is a filtering option that changes the amount of data when the page is refreshed, by means of clicking on the [Refresh] button. The option is:

'Browse Snapshot' Analysis Page

This Analysis Tool simply shows the tree of called Services.

Placing the mouse cursor over the node name will show a tip with context summarized information.
By clicking on the node name, contextual detail information is shown in the panel on the right:

There are no sorting options: the root nodes are always ordered ascending.

The Package Exclusion Patterns and the Minimum Elapsed Time filtering options are only applied to the root nodes.

Option Description
Expand all tree nodes.
Collapse all tree nodes.
Service Name

Enter the service name to locate in the tree.

Locates all occurrence of a fully qualified service name.

The tree is expanded to where the service is found and the tree node(s) is(are) highlighted (but not selected).

Locates all occurrence of a service in the given the Regular Expression entered in the Service Name text box.

The tree is expanded to where the service is found and the tree node(s) is(are) highlighted (but not selected).

Clear all highlighted tree nodes (does not deselect any currently selected tree node).
Minimum Elapsed Time

Applied only to root services.

Only shows root nodes for which the Elapsed Time is above the stated value.

The filter is applied by pressing the [Refresh] button.

Ignore ALL Package Exclusion Patterns

When checked, the Package Exclusion Patterns settings are completelly ignored and all packaged are included.

This option is useful to reveal services that are not excluded by the patterns, but that are in an execution path started by a service that is thus excluded, without having to change the current Package Exclusion Patterns settings.

On the tree nodes, which represent Service Calls, there may appear some visual hints overlaid to the node icon that give it some extra meaning. These tree node visual hints are explained in the table below.

Tree Node Hint Description

False root.

This can only occur on the node that is representing a Top Level Service or Root Service, i.e., a Service at the top of the tree.

A False root occurs when the Service Profiler is started, a service running path is already on the run and the first collected data happens in the middle of the call stack: for the Service Profiler this is a root because its has no recollection of the services up in the call stack. However, it is recognizably not a true Top Level Service because its parent is not null.

This hint indicates that the Service has raised exceptions. Select it to view its details, where an exception count is also presented.

Note: The View Per Service reports accumulated timings per service independently from its position in the calling tree. This may induce timing differences for a specific node by comparison because that service may be called by different parents which may even be currently filtered out.
 
Note: Some service nodes that are presented in the root may in fact not be top-level services.
They may happen to be on the root node just because they were first scanned after the time when the profiler was started.
These are called false roots are visually hinted.

'Browse Running Services' Analysis Page

The information on the Service Counters snapshots is only for top-level services that have already finished running.
While the top-level service is still running in some thread, its call path gathered timing and counts information is kept internally and only merged to the Service Counters when it finally returns.

This analysis page shows the threads that are currently running Services and also allows some insight over what services are currently running on the Integrations Server.

This analysis page is particularly interesting if there are top-level services that are taking a considerable amount of time to run from-end-to-end.

The detail information about each node is very similar to the one presented by Browse Snapshot with some differences:

Option Description
Expand all tree nodes.
Collapse all tree nodes.
Service Name

Enter the service name to locate in the tree.

Locates all occurrence of a fully qualified service name.

The tree is expanded to where the service is found and the tree node(s) is(are) highlighted (but not selected).

Locates all occurrence of a service in the given the Regular Expression entered in the Service Name text box.

The tree is expanded to where the service is found and the tree node(s) is(are) highlighted (but not selected).

Clear all highlighted tree nodes (does not deselect any currently selected tree node).
With Thread info

When checked, the usage of the Refresh button will result in a new snapshot with detail information about the threads included.

This option is only available in Integration Servers that are running under a JVM that allows this capability.

Ignore ALL Package Exclusion Patterns

When checked, the Package Exclusion Patterns settings are completelly ignored and all packaged are included.

This option is useful to reveal services that are not excluded by the patterns, but that are in an execution path started by a service that is thus excluded, without having to change the current Package Exclusion Patterns settings.

When the With Thread info option is checked, the thread icons suffer changes to visually reflect some (not all, but what can be considered important) state information.

Note: It is important to point out that the viewed information is valid for the moment the snapshot was taken. So, for instance in case of simple blockage, the status may be transient and when viewed it may already have been changed.

Thread Icon Description
The thread is running normally (RUNNABLE) or no detail information about the threads was requested.
The thread is blocked (BLOCKED) by the thread info gathering process.
The lock is only for the duration of the information gathering and it is now already released. The detail panel contains information about the blocker, and if it is a thread in the current snapshot a link is available to directly locate it in the tree.
The thread is blocked (BLOCKED) by another.
The detail panel contains information about who is blocking, and if it is a thread in the current snapshot a link is available to directly locate it in the tree.
The thread is not only blocked. It is actually involved in a deadlock.
The thread is suspended.
The thread is waiting, either that some time has passed (TIMED_WAITING) or that a notification happens (WAITING).

On the tree nodes, which represent all Service Calls made in the context of the top-level service in that thread, there may appear some visual hints overlaid to the node icon that give it some extra meaning. These tree node visual hints are explained in the table below.

Tree Node Hint Description

False root.

This can only occur on the node that is representing a Top Level Service or Root Service, i.e., a Service at the top of the tree.

A False root occurs when the Service Profiler is started, a service running path is already on the run and the first collected data happens in the middle of the call stack: for the Service Profiler this is a root because its has no recollection of the services up in the call stack. However, it is recognizably not a true Top Level Service because its parent is not null.

This hint indicates that the Service has raised exceptions. Select it to view its details, where an exception count is also presented.

This hint indicates that the Service is part of the thread call-stack. It is not the service currently running but it is on the call path and has itself called another service.

The node with this hint is the Service actually running within the thread.
It is the service that is currently (at the time the snapshot was taken) on the top of the call-stack.

For this node, the contextual detail information will present an extra information panel named Running Instance. In it, the Elapsed value indicates the amount of time elapsed since the service was invoked.

Note: Service call count of 0 (zero).
The service call count is only incremented when the call is completed and returns the control back to the caller. This is also true for the timings and other counts.
So, the displayed call count value, exception count, elapsed time, etc., for each service is only for calls that have already finished.
When the service is first called, and is still on the thread call-stack, its call count is 0 (zero).
 
Note: The Package Exclusion Patterns setting is only applied to the root nodes.
 
Note: This dashboard snapshot is not affected by the Freeze Snapshot setting. So, every time the page is loaded, or the Refresh button is clicked, a fresh snapshot of the threads is taken.
 
Note: Some service nodes that are presented in the root may in fact not be top-level services.
They may happen to be on the root node just because they were first scanned after the time when the profiler was started.
These are called false roots are visually hinted.

Export To File

This functionality allows exporting the current snapshot to a file.

Option Description
File Type Select the file format/type.
When you choose the file format/type, adequate options are shown corresponding to the file format/type.
Stream to download

The file is generated as a stream directly to the browser.

Depending on the setting for the file's mime type on your local machine/browser, the file may be shown directly on the browser or a dialog box may be open to direct you to save the file, open it with an installed application, etc.

Generate file & link

The snapshot is generated in to a file located in the server's disk and a link is generated to access it.
Upon completion, and on success, you are presented with a new page with a file name link.

The link is intended to be used as a Save As... option to save it to your local disk.

When the [Execute] button is clicked, the file generation process is started.

Note: The snapshot used by the Export, is not affected by the Package Exclusion Patterns.
So, all the collected Services are included in the exported data.
 
Note: This dashboard snapshot is affected by the Freeze Snapshot setting.
So, if a snapshot is frozen, the Freeze Snapshot icon is visible and the exported data relates to it.

From File

This functionality allows loading a previously exported snapshot (as XML) to be viewed in the dashboard.

Note: The snapshots can be from Integration Servers other than the current one. For snapshots exported with previous versions of the Service Profiler the service icons may appear incorrect or as . This is because metadata about the exported services is not included as part of the snapshot and the tool tries to collect it from the current host and it may not exist, or even worse, not be true.

Option Description
Browse Locally select a file to be uploaded.
It has to be a valid exported XML file. The file type and structure is validated an will not be loaded if invalid.
Upload

Execute the upload operation.

If any processing/validation error occurs a corresponding message is displayed and the form is reset and made available for another try.

Upon success, a corresponding message is shown together with an icon () that is the visual clue indicating that the snapshot is from a loaded XML and not from the running services. This visual clue is shown in the dashboards and panels that show the loaded snapshot.
Not all dashboards show/reflect the loaded snapshot, e.g., the Browse Running Services.

Note: When the file is loaded, the snapshot is frozen (). If at the time of the file load the profiler was already started and collecting service information, it will continue doing so in the background.

To discard the loaded XML snapshot and access the running services snapshots, just go to the admin page and unfreeze the snapshot.