WAS v8.5 > Reference > Administrator best practices

ARM application properties and transaction context data


Request metrics provides build-in instrumentation to monitor transaction flows. The data that is collected by request metrics can be sent to a supported Application Response Measurement (ARM) agent.


ARM application properties

The following tables show the ARM application properties when request metrics initializes an ARM 4.0 agent.

Identity property names and value. The following table shows the ARM application properties when request metrics initializes an ARM 4.0 agent.

Identity property names Value
Cell Name The cell name the server belongs to.
Version The version of WebSphere Application Server.

Application properties and value. The following table shows the ARM application properties when request metrics initializes an ARM 4.0 agent.

Application properties Value
Registered application name WebSphere:<server_type>

The <server_type> can be APPLICATION_SERVER, ONDEMAND_ROUTER, or PROXY_SERVER.

Application group <server_name>
Application instance <node_name>.<server_name>

The following code sample displays how WAS creates an ARM application.

String serverType; // the server type like APPLICATION_SERVER
String version; // WebSphere version String sCellName; // the cell name of dMgr
String sAppInstance. // <short_node_name>.<short_server_name> String sServerInstance; // short server name String sWasName = "WebSphere:" + serverType;
String[] IDNAMES = new String[]{"Cell Name", "Version"};
ArmIdentityProperties appIdentity = txFactory.newArmIdentityProperties(IDNAMES, new String[]{sCellName, 
version}, null);
ArmApplicationDefinition appDef = txFactory.newArmApplicationDefinition( sWasName, appIdentity, null );
ArmApplication app = txFactory.newArmApplication(appDef, sServerInstance, sAppInstance, null );


ARM transaction types

We can use the following code sample to create an instance of ARM transaction.

String[] contextNames; // the names for the context data like Port, QueryString, URI, EJBName
String tranIdentityName; // the transaction types shown in the following table like URI, EJB.
String appDef; // defined and created in above code snippet under ARM application properties String app; // defined and created in above code snippet under ARM application properties ArmIdentityPropertiesTransaction props = armFactory.newArmIdentityPropertiesTransaction( null, null, 
contextNames, null );   
ArmTransactionDefinition atd = armFactory.newArmTransactionDefinition(appDef, identityName, props, (ArmID)null);
ArmTransaction at = txFactory.newArmTransaction(app, atd );

The sections later in this section show all ARM transaction types and their corresponding context names. Some types of transactions are not instrumented unless the trace level is set to DEBUG. In addition, not every transaction is available in all types of servers. All transaction types and context names are case sensitive.


Uniform resource identifier (URI)

This transaction type is the uniform resource identifier (URI) for servlet and JavaServer Page (JSP) requests. All of the following transaction types and context names are available in all types of servers.

Transaction type: URI. All the following transaction types and context names are available in all types of servers.

Transaction type: URI
Context name Description
Port The TCP/IP port where the request arrived, specified as a string representation of the decimal value.

Example: 9080

QueryString The portion of the dynamic URI containing the search parameters of the request in the query segment of the URI string, excluding the question mark (?) character.

Example: selection=EJB&lookup=GBL&trans=CMT

URI The incoming request URI of the servlet and JSP file used.

Example: /hitcount


EJB

This EJB transaction type and context names are only available in application servers.

Transaction type: EJB . This EJB transaction type and context names are only available in application servers.

Transaction Type: EJB
Context name Description
EJBName The fully qualified EJB class name, followed by method name with a period (.) to connect them. For example, com.mypackge.MyEJBClass.mymethod.

Example: com.ibm.defaultapplication.IncrementBean.create

ApplicationName The Java™ 2 Platform, Enterprise Edition (J2EE) application name containing the enterprise bean.

Example: DefaultApplication

ModuleName The J2EE module name containing the enterprise bean.

Example: Increment.jar


Servlet filter

The servlet filter transaction type is only available at the DEBUG trace level. For other levels, servlet filters are not instrumented. This transaction type and context names are only available in application servers.

Transaction type: Servlet filter. This transaction type and context names are only available in application servers.

Transaction Type: Servlet filter
Context name Description
FilterName The servlet filter name for the servlet.

Example: ALoginFilter


JDBC

The JDBC transaction type is only available at the DEBUG trace level. For other levels, JDBC is a block call. This transaction type and context names are only available in application servers.

Transaction type: JDBC. This transaction type and context names are only available in application servers.

Transaction type: JDBC
Context name Description
ClassName The interface name for the JDBC call. This name is not the actual class name.

Example: java.sql.PreparedStatement

MethodName The method name for the JDBC call.

Example: executeUpdate()


Java EE Connector Architecture (JCA)

The JCA transaction type is available only at the DEBUG trace level. For other levels, JCA is a block call. This transaction type and context names are only available in application servers.

Transaction type: JCA. This transaction type and context names are only available in application servers.

Transaction type: JCA
Context name Description
ClassName The class name for the JCA call.

Example: javax.resource.spi.ManagedConnection

MethodName The method name for the JCA call.

Example: getConnection(Subject, ConnectionRequestInfo)


Web Services Provider

The web services provider transaction type is for server-side web services requests. This transaction type and the Wsdlport and Operation context names are available in all types of servers. The Transport, NameSpace, and InputMessage context names are only available in application servers.

Transaction type: Web Services Provider. This transaction type and the Wsdlport and Operation context names are available in all types of servers. The Transport, NameSpace, and InputMessage context names are only available in application servers.

Transaction type: Web Services Provider  
Context name Description
WsdlPort The WSDL port name associated with the web service.

Example: AccountManager

Operation The operation name associated with the web service.

Example: createNewAccount

Transport The transport name associated with the web service.

Example: http

NameSpace The name space associated with the Web service.

Example: http://accountmanager.mycorp.com

InputMessage The input message name associated with the web service.

Example: createNewAccountRequest


Web Services Requestor

The web services requestor transaction type is available only at DEBUG trace level. For other levels, web services requestor is a block call. This transaction type and context names are only available in application servers.

Transaction type: Web Services Requestor. This transaction type and context names are only available in application servers.

Transaction type: Web Services Requestor
Context name Description
WsdlPort The WSDL port name associated with the web service.

Example: AccountManager

Operation The operation name associated with the web service.

Example: createNewAccount

Transport The transport name associated with the web service.

Example: http

Parameters The parameters for the web service request.

Example: customerName,addressStreet,addressCity,addressState,addressZip


JMS

The JMS transaction type is only for message-driven bean (MDB) scenarios in default messaging, including the System Integration Bus (SIB) layer and MQ. This transaction type and context names are only available in application servers.

Transaction type: JMS. This transaction type and context names are only available in application servers.

Transaction type: JMS
Context name Description
DestinationName The destination queue name or topic name for the JMS.

Example: MyBusiness.Topic.Space

MessageSelector The message selector for JMS.
Provider Provider refers to either default messaging, SIB, or MQ.

Example: Default Messaging


JMS send and receive

The JMS send and receive transaction type is only available at the DEBUG trace level. For other levels, JMS send and receive is a block call. This transaction type and context names are only available in application servers.

Transaction type: JMS send/receive. This transaction type and context names are only available in application servers.

Transaction type: JMS send/receive
Context name Description
ClassName The class name in the JMS provider that makes the call.

Example: com.ibm.ws.sib.api.jms.impl.JmsTopicPublisherImpl

MethodName The method name in the JMS provider that makes the call.

Example: sendMessage


Service Integration Bus (SIB) send and receive

The SIB send and receive transaction type is only available at the DEBUG trace level. For other levels, SIB send and receive is a block call. This transaction type and context names are only available in application servers.

Transaction type: SIB send/receive. This transaction type and context names are only available in application servers.

Transaction type: SIB send/receive.
Context name Description
ClassName The class name in the SIB layer that makes the call.

Example: com.ibm.ws.sib.processor.impl.ProducerSessionImpl

MethodName The method name in the SIB layer that makes the call.

Example: send

BusName The name of the Service Integration Bus that this call is made on.
DestinationName The name of the Service Integration Destination that this call is made on.


SIB MDB

The SIB MDB transaction type is only available in application servers.

Transaction type: SIB MDB. The SIB MDB transaction type is only available in application servers.

Transaction type: SIB MDB.
Context name Description
BusName The name of the SIB the Destination the MDB is listening on is located.
DestinationName The name of the SIB that this MDB is listening too.
MessageSelector The message selector used by this MDB.
MdbDiscriminator The Discriminator used by this MDB.
Provider The type of provider that this MDB is for.

Example: Default Messaging or SIB


SIB mediate

The SIB mediation transaction type and context names are only available in application servers.

Transaction type: SIB mediate. The SIB mediation transaction type and context names are only available in application servers.

Transaction type: SIB mediate
Context name Description
ClassName The class name in which the call is made.
MethodName The method name in which the call is made.
MediationName The mediation name for the JMS.

Example: myMediation

BusName The service integration bus name for the JMS.

Example: thisBusName

DestinationName The destination name for the JMS.

Example: myMessageQueue


Asynchronous beans

The asynchronous beans transaction type is for asynchronous beans timers, alerts, and deferred starts. This transaction type and context names are only available in application servers.

Transaction type: Asynchronous beans. This transaction type and context names are only available in application servers.

Transaction type: Asynchronous beans
Context name Description
Type The type of asynchronous beans task.

Example: COMMONJ_TIMER

ClassName The class name that executes the asynchronous beans task.

Example: com.mycorp.MyTaskClass


JNDI

The JNDI transaction type is only available at DEBUG trace level. For other trace levels, JNDI calls will not be instrumented. This transaction type and context names are only available in application servers.

Transaction type: JNDI. This transaction type and context names are only available in application servers.

Transaction type: JNDI
Context name Description
JNDIName The JNDI lookup name.

Example: ejbJndiName


Portlet

The portlet transaction type is and context names are only available in application servers.

Transaction type: Porlet. The portlet transaction type and context names are only available in application servers.

Transaction type: Portlet
Context name Description
Method The method of the portlet that is currently utilized, which can be either action or render.
WindowID The window identifier of the portlet that is currently utilized.
URI (This is an ARM transaction context property name, and not to be confused with the explicit ARM transaction URI property as specified on WebSphere servlet transactions, and in particular not to be confused with the Enterprise Workload Manager (EWLM) "EWLM: URI"policy filter.) The context path of the current portlet request.


ARM correlators via HTTP and SOAP protocols

For HTTP inbound, WAS checks the case sensitive HTTP header “ARM_CORRELATOR” for the incoming ARM correlator. The application server does not allow the flow of ARM correlators via HTTP outbound.

For SOAP inbound, WAS checks the SOAP header for an element as follows:

For SOAP outbound, WAS creates a new SOAP header and passes the ARM correlator string as a text node in the header. For example:

The following is an example SOAP header with an ARM correlator. Note the ARM correlator must be passed in hex string format of the ARM correlator byte array despite whether HTTP or SOAP protocol is used.

<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <reqmetrics:arm_correlator soapenv:actor="reqmetricsURI" xmlns:reqmetrics="http://websphere.ibm.com"> 37000000000000000000
</reqmetrics:arm_correlator> </soapenv:Header>


Related concepts:

Application Response Measurement
Request metric extension


Related


Get performance data from request metrics


+

Search Tips   |   Advanced Search