There are 25 performance
statistics that you can monitor
at the Service Component Architecture (SCA) level. You can use these
Application Response Measurement (ARM) statistics, which are either
counters or timers, to measure invocations to and responses from services
in various patterns.
The Application Response Measurement (ARM) statistics
shown in the following tables are - in a simplified manner - time
and count measurements of caller invocations to the Service Component
Architecture (SCA) layer, and the results returned from a service.
There are, in fact, a number of service invocation patterns that vary
between synchronous and asynchronous implementations of deferred responses,
results retrievals, callbacks, and one-way invocations. All patterns,
however, are between the caller invocation and a service, the response
from the service, or, in some cases, a data source, with the SCA layer
interposed in between.
You can specify the ARM statistics that
you want to monitor by opening the
Monitoring and Tuning
> Request Metrics panel on the administrative console.
Request metrics information might be either saved to the log file
for later retrieval and analysis, be sent to ARM agents, or both.
IBM® Business
Automation Workflow does
not ship an ARM agent; however, it supports the use of agents adhering
to ARM 4.0. You can choose your own ARM implementation provider to
obtain the ARM implementation libraries. Follow the instructions from
the ARM provider, and ensure that the ARM API Java™ archive (JAR) files found in the ARM provider
are on the class path so that
IBM Business
Automation Workflow can
load the needed classes. Then you need to add the following entries
into the system properties for each server by selecting from the administrative
console
Application servers > server_name >
Process Definition > Java Virtual Machine > Custom Properties before
restarting the server:
Arm40.ArmMetricFactory -
the full Java class name of
your ARM implementation providers
metrics factory.
Arm40.ArmTranReportFactory -
the full Java class name of
your ARM implementation providers
transaction report factory.
Arm40.ArmTransactionFactory -
the full Java class name of
your ARM implementation providers
transaction factory.
See the
WebSphere® Application
Server documentation
for further details on how to configure the server to collect ARM
statistics.
Table 1. Event types and elements that can
produce ARM statistics| Event type |
Element |
| Business process |
Process |
| Human task |
Task |
| Business rule |
Operation |
| Business state
machine |
Transition
Guard
Action
EntryAction
ExitAction |
| Selector |
Operation |
| Map |
Map
Transformation |
| Mediation |
OperationBinding
ParameterMediation |
| Resource adapter |
InboundEventRetrieval
InboundEventDelivery
Outbound |
Table 2. Common. These
statistics
are common to all service invocation patterns.| Statistic name |
Type |
Description |
| GoodRequests |
Counter |
Number of server
invocations not raising exceptions. |
| BadRequests |
Counter |
Number of server
invocations raising exceptions. |
| ResponseTime |
Timer |
Duration
measured on the server side between
the reception of a request and computing the result. |
| TotalResponseTime |
Timer |
Duration
measured on the caller side, from the
time a caller requests a service to the time when the result is available
for the caller. Does not include the processing of the result by the
caller. |
| RequestDeliveryTime |
Timer |
Duration
measured on the caller side, from the
time a caller requests a service to the time when the request is handed
over to the implementation on the server side. In a distributed environment,
the quality of this measurement depends on the quality of synchronization
of system clocks. |
| ResponseDeliveryTime |
Timer |
The
time required to make the result available
to the client. For a deferred response, this time does not include
the result retrieve time. In a distributed environment, the quality
of this measurement depends on the quality of synchronization of system
clocks. |
Table 3. Reference. These statistics
occur when a caller makes an invocation to the SCA layer or a data
source, without a response from the service.
| Statistic name |
Type |
Description |
| GoodRefRequests |
Counter |
Number of caller invocations to the SCA layer
that do not raise exceptions. |
| BadRefRequests |
Counter |
Number
of caller invocations to the SCA layer
that do raise exceptions. |
| RefResponseTime |
Timer |
Duration
measured on the caller side, from the
time the caller makes a request to the SCA layer and the time when
the results of that call are returned to the caller. |
| BadRetrieveResult |
Counter |
Number of caller invocations to a data source
that do raise exceptions. |
| GoodRetrieveResult |
Counter |
Number
of caller invocations to a data source
that do not raise exceptions. |
| RetrieveResultResponseTime |
Timer |
Duration
measured on the caller side, from the
time the caller makes a request to the data source and the time when
the data source response is returned to the caller. |
| RetrieveResultWaitTime |
Timer |
Duration
measured on the caller side if a timeout
occurs. |
Table 4. Target. These statistics
occur when there are requests that originate between the service and
the SCA or a data source.| Statistic name |
Type |
Description |
| GoodTargetSubmit |
Counter |
Number of SCA invocations to the service that
do not raise exceptions. |
| BadTargetSubmit |
Counter |
Number
of SCA invocations to the service that
do raise exceptions. |
| TargetSubmitTime |
Timer |
Duration
measured on the server side, from the
time the SCA makes a request to the service and the time when the
results of that call are returned to the SCA. |
| GoodResultSubmit |
Counter |
Number of service invocations to the data source
that do not raise exceptions. |
| BadResultSubmit |
Counter |
Number
of service invocations to the data source
that do raise exceptions. |
| ResultSubmitTime |
Timer |
Duration
measured on the server side, from the
time the service makes a request to the data source and the time when
the results of are returned to the service. |
Table 5. Callback. These
statistics
occur when a callback (a "sibling" of the original call) is present
on the caller.| Statistic name |
Type |
Description |
| GoodCB |
Counter |
Number
of SCA invocations to the callback that
do not raise exceptions. |
| BadCB |
Counter |
Number
of SCA invocations to the callback that
do raise exceptions. |
| CBTime |
Timer |
Duration
from the time the SCA makes a request
to the callback, and the time when the results from the callback are
returned to the SCA. |
| GoodCBSubmit |
Counter |
Number
of invocations from the service to the
SCA handling the callback that do not raise exceptions. |
| BadCBSubmit |
Counter |
Number
of invocations from the service to the
SCA handling the callback that do raise exceptions. |
| CBSubmitTime |
Timer |
Duration from the
time the service makes a request
to the SCA handling the callback, and the time when the results from
the SCA to the service. |