This topic applies only to the IBM Business Automation Workflow Advanced
configuration.

Deferred response with asynchronous implementation

You can obtain Application Response Measurement (ARM) statistics from an asynchronous implementation. The call to the service and the return result are invoked but the resulting output is sent to a data store from the service target.

Parameters

Event monitoring for Service Component Architecture (SCA) components includes the event points that are shown in black Black event point, while the event points shown in blue Blue event point are used only to calculate and fire PMI/ARM statistics.

In the following table and diagram, the current ARM transaction (denoted as X1) is created when the calling service component was invoked for the first time. If the caller is not a service component, the current ARM transaction is used, or a new one is created. If it is not the starting transaction, it has a parent, as represented in the following table and diagram with the notation Xn.Xn+1. The notation is used to show the transaction lineage. Every SCA invocation starts a new transaction, which is parented by the current transaction of the caller. You can create new transactions and you can access the current transaction, but you cannot modify the SCA transaction lineage.

Table 1. Invocation of request and return result
Type Statistics Formula ARM Transaction
Common TotalResponseTime t3 - t0 X0.X1
RequestDeliveryTime t'0 - t0 X1.X2
ResponseDeliveryTime t'03 - t'2
GoodRequests CountEXIT
BadRequests CountFAILURE
ResponseTime t'3 - t'0
Reference A GoodRefRequest CountEXIT X0.X1
BadRefRequests CountFAILURE
RefResponseTime t1 - t0
Target A GoodTargetSubmit CountEXIT X1.X2
BadTargetSubmit CountFAILURE
TargetSubmitTime t'1 - t'0
Diagram of deferred response with asynchronous implementation.
Table 2. Invocation of return result to a data store
Type Statistics Formula ARM Transaction
Reference B GoodResultSubmit CountEXIT X0.X1
BadResultSubmit CountFAILURE
ResultResponseTime t'3 - t'2
Target B GoodResultRetrieve CountEXIT X1.X2
BadResultRetrieve CountFAILURE
ResultRetrieveResponseTime Σ t3 - t2
ResultRetrieveWaitTime Σ timeout