Chapter 1. IBM Enterprise Workload Manager Overview 15
failed, that the EWLM ARM implementation will include in its transaction completion data
capture.
The EWLM ARM implementation interacts with the EWLM managed server logic (not
depicted separately in this figure) to capture and send in-progress and completed transaction
data to the EWLM domain manager.
In this particular scenario in Figure 1-7, work arrives at the Apache server with no input
correlator, formally referred to as a parent ARM correlator. When arm_start_tran() is called
from the Apache server, the EWLM ARM implementation notices that there is no parent ARM
correlator, and performs classification to determine which transaction and service classes to
associate with the transaction instance. The EWLM ARM implementation also constructs and
returns an arm_start_tran() output argument child correlator, formally referred to as a current
ARM correlator, which reflects two key pieces of information:
1. Description of the Apache server as the first middleware hop in this transaction instance
processing.
2. The arm_start_tran() processing transaction classification result.
It is important to note that the classification action that occurs for the Apache server
arm_start_tran() call happens because no parent ARM correlator was specified as an input
argument. A transaction instance being processed by a middleware hop is considered to be a
transaction edge whenever no parent ARM correlator is available, and therefore the
transaction is classified by EWLM ARM processing.
The Apache server inserts the current ARM correlator received from its arm_start_tran() call
into the HTTP request header, and eventually transfers control to the WebSphere Application
Server to proceed with transaction instance processing. When the WebSphere Application
Server is prepared to process this transaction instance, it extracts the Apache server’s current
ARM correlator from its input HTTP header and specifies that as the parent ARM correlator
input argument on its arm_start_tran() call. This time, the EWLM ARM implementation
ignores filters specified on the arm_start_tran() call because of the parent ARM correlator,
and instead constructs an output argument current ARM correlator reflecting the following:
1. Description of the WebSphere Application Server as the second middleware hop in this
transaction instance processing.
2. The same transaction classification result that was reflected in the parent ARM correlator,
which is the result achieved by the Apache server.
Sometime following its arm_start_tran() call, the WebSphere Application Server determines
that the transaction instance requires a database query, and performs a JDBC call to the DB2
Universal Database™ server to accomplish this. The WebSphere Application Server current
ARM correlator is included in the JDBC control transfer protocol, and when the DB2 server is
prepared to process the query it extracts this correlator from JDBC input data and specifies
that as the parent ARM correlator input argument on the DB2 arm_start_tran() call. Again, the
EWLM ARM implementation ignores filters specified on the arm_start_tran() call because of
the parent ARM correlator, and instead constructs an output argument current ARM
correlator reflecting the following:
1. Description of the DB2 server as the third middleware hop in this transaction instance
processing.
Note: A hop is when a work request flows from one application to another. Hop 0 is the
place where an application is first assigned a correlator for the work request. Hop 0 occurs
at what is referred to as the
transaction edge.