Skip to main content

Use ARM to monitor SCA invocations in IBM WebSphere Process Server V6.1, Part 1: Debug SCA invocations using IBM Tivoli Composite Application Manager for Response Time Tracking

Jiangwei Lv, Software Engineer, IBM
Jiangwei Lv photo
Jiangwei Lv is a software development engineer in the WebSphere Business Integration team, IBM China Development Laboratory.

Summary:  This two-part series shows you how to monitor Service Component Architecture (SCA) invocations using the Application Response Measurement (ARM) standard in IBM® WebSphere® Process Server V6.1. You can use an ARM implementation, such as IBM Tivoli® Composite Application Manager for Response Time Tracking, to generate a graphic view of SCA invocations. This article, Part 1 of the series, starts by describing ARM and showing you how to debug synchronous scenarios using Tivoli Composite Application Manager for Response Time Tracking. In Part 2, you get an introduction to SCA invocation patterns and learn how to debug asynchronous scenarios.

View more content in this series

Date:  29 May 2008
Level:  Intermediate PDF:  A4 and Letter (266KB)Get Adobe® Reader®
Activity:  3011 views

Introduction

WebSphere Process Server introduced SCA as the programming model to build Service-Oriented Architecture (SOA) systems. As an enterprise solution, SCA supports existing technologies, such as Java™ and Web services, and creates a unified view to assemble various kinds of components that implement Java or Web Services Description Language (WSDL) interfaces. Often, you need to monitor SCA components during run time for design refinement, performance tuning, or troubleshooting. You can solve problems like failure conditions or unacceptable latency by analyzing performance metrics.

WebSphere Process Server V6.1 provides an observation capability for SCA invocations and supports various standards for statistics output, including Common Event Infrastructure (CEI), Performance Monitoring Infrastructure (PMI), and ARM. You can monitor certain service components by selecting those monitoring points to emit events to CEI, or you can get performance statistics by PMI or ARM.

ARM in WebSphere Process Server V6.1 is an SCA-level performance measurement, which produces finer detail on certain aspects of performance compared to other formats. It mainly focuses on the completion status, interval time, and transaction lineage for each process in SCA. The performance statistics are logically interlinked due to the nature of ARM, thus the bottleneck in the SCA invocation can be better detected.


What is ARM?

ARM is an Open Group standard to measure the performance and availability of applications or business services. It's instrumented by the applications in development phase, and used at run time to analyze the transactions that are involved.

The basic capability of ARM is recording the start and stop timestamp with the execution result for each transaction. The transactions are interconnected by the tokens generated by ARM and passed by applications. After all transactions finish, a topology can be drawn from the correlating transactions, and the system administrator can analyze the statistics to find out where the costly or troublesome paths are.

To some extent, ARM works like a powerful stopwatch, providing an interface that contains start() and stop() entries just like the stopwatch that a coach uses. Different players are like various transactions, and the invocation chain is like a relay race with a baton passed from one to the next, which is similar to the correlation token that links transactions.

WebSphere Process Server V6.1 is instrumented with an ARM 4.0 standard Java binding and supports monitoring transaction statistics of SCA invocations. Note: WebSphere Process Server doesn't ship an ARM agent; it supports the ARM standard, which means that users choose their own implementation providers. (See Resources for a link to the official documents of the ARM standard on Open Group Web site.)


Debug synchronous SCA invocations in WebSphere Process Server V6.1 using Tivoli Composite Application Manager for Response Time Tracking

In this article, Tivoli Composite Application Manager for Response Time Tracking is the ARM implementation provider to collect and analyze the data of the SCA invocation in WebSphere Process Server V6.1. Here, you use a single-module, multiple-components SCA invocation scenario as an example to see how ARM data can be presented (see Figure 1). In this scenario, all the invocations are synchronous invocation (request-response operation) over synchronous implementation. (The related patterns are described in Part 2 of this series). For components 1, 2, 3, 4, and 6, the preset local processing time is 0.5 second; for component 5, the time is 3 seconds, which is the point where the bottleneck resides.


Figure 1. Example of SCA invocation in a single module
Example of SCA invocation in a single module

Installation and instrumentation

Tivoli Composite Application Manager for Response Time Tracking introduces the client/server architecture in which the management agent collects the data and the management server monitors, maintains, and analyzes the data from the agents that are connected.

In this scenario, you set up a client with WebSphere Process Server V6.1 and a management agent, which is a server with a management server. WebSphere Application Server and IBM DB2®, which are the setup prerequisites by the management server, are also installed on the server side (see Table 1).


Table 1. The setup environment in the scenario
Client sideServer side
WebSphere Process Server V6.1Tivoli Composite Application Manager for Response Time Tracking V6.1 management server
Tivoli Composite Application Manager V6.1 management agent WebSphere Application Server V6.0.2
IBM DB2 Enterprise Server V9.1

Note: For more information about installation and configuration, visit the IBM Tivoli information center to get the IBM Tivoli Composite Application Manager for Response Time Tracking Installation and Configuration Guide (click Composite Application Manager for Response Time Tracking > Installation and Configuration Guide in the left pane).

After installation, the server recognizes the agent (see Figure 2), so the user should be able to create a listening monitor for the agent, which is covered later in this article.


Figure 2. The recognized agent
The recognized agent

The next step is ARM instrumentation on the client side:

  1. Copy armjni4.jar from <ITCAM4RTT_INSTALL_DIR>\lib\ to the place where its class files can be loaded by WebSphere Process Server V6.1.
  2. Start the server on the client side.
  3. In the Administration Console, select Application servers > ${SERVER_NAME} > Process Definition > Java Virtual Machine > Custom Properties, and add the entries shown in Table 2 to the Java Virtual Machine.

Table 2. The Java Virtual Machine properties to add
NameValue
Arm40.ArmMetricFactorycom.ibm.tivoli.transperf.arm4.metric.Arm40MetricFactory
Arm40.ArmTranReportFactorycom.ibm.tivoli.transperf.arm4.tranreport.Arm40TranReportFactory
Arm40.ArmTransactionFactorycom.ibm.tivoli.transperf.arm4.transaction.Arm40TransactionFactory

  1. Restart WebSphere Process Server V6.1 and run the application. The management agent caches the ARM data and sends it to the management server.
  2. Open the management server Administration Console, where you should find that the transaction is discovered (see Figure 3).

Figure 3. Discovered transactions
Discovered transactions

The listening monitor should be configured according to the discovered transactions. (see Figure 4).


Figure 4. Listening monitor
Listening monitor
  1. Run the application again. The monitor catches the performance data from the agent later, then the report can be generated.

Analyze the data

Tivoli Composite Application Manager for Response Time Tracking provides statistical- or instance-based views to analyze the result.

  1. Select Dashboard to see the current monitor status, as shown in Figure 5.

Figure 5. Monitor status
Monitor status
  1. To debug a single instance in this synchronous scenario, click Reports > General Reports > Topology, and select the interested instance. The topology is presented as Figure 6 shows.

Figure 6. Topology report
Topology report

In this topology view, the ARM invocation chain is reproduced in a graphic form, which is consistent with the scenario developed by IBM WebSphere Integration Developer (see Figure 1).

In the level shown in Figure 1, the detailed transactions are grouped by the transaction name or the SCA event source name, which consists of the component's unique name, interface name, and operation name: Transaction Name = SCA.<COMPONENT_NAME>.MethodInvocation._<INTERFACE_NAME>_<OPERATION_NAME>

You can see that the local time of Component5 is 3.008 seconds for this invocation. The yellow exclamation mark indicates that this component is the bottleneck for the whole chain (see Figure 7).


Figure 7. The bottleneck in the invocation
The bottleneck in the invocation

Note: In this view level, the transactions are grouped, and this level is enough for most cases. If you're interested in debugging the internal transactions between components, click the tag of the transaction group that you're interested in. The internal transactions that are comparable to the patterns (which are described in Part 2 of this series) are shown. Figure 8 shows the example to expand the transaction group named SCA.com.ibm.xmlns.prod.websphere.scdl._6_0_0.Component5.MethodInvocation_FooInterface_fooOperation, which consists of two transactions in the invocation between Component4 and Component5. In Figure 8 you can see that in this synchronous invocation the reference-side transaction takes only 0.004 seconds (3.006 – 3.002), while the target-side transaction takes 3.002 seconds (3.002 – 0).


Figure 8. Expanded view of the transactions
Expanded view of the transactions

Actually, you can visualize and easily recognize the transaction time length in the transaction breakdown report (see Figure 9), which consists of a table and a breakdown view. If a bar in the breakdown view is too short to see its full name, just select it and refer to the name in the prompt message box or the left-side table that's highlighted.


Figure 9. Transaction breakdown report
Transaction breakdown report

When doing time analysis on a certain component, you pick up the transactions that are linked together and share the same name. This is because for the transactions between two components in an invocation, their names are the same as they are targeting at the same component (see Figure 10).


Figure 10. The transactions with the same name
The transactions with the same name

In the breakdown view, the length of the transaction bar denotes the response time for every transaction. In this synchronous request-response invocation, the local time equals the response time minus downstream time, so you can draw a picture of the local time (see Figure 11). Apparently, Component5 is taking the longest local time.


Figure 11. Local time analysis on transaction breakdown
Local time analysis on           transaction breakdown

If a ServiceBusinessException is thrown at Component5, the topology report marks it red, so you can easily recognize the failure point, as shown in Figure 12.


Figure 12. The failure point in the topology report
The failure point in the topology report

The above invocation is a typical synchronous invocation scenario. For scenarios like asynchronous invocation, the transaction breakdown view is slightly different. (This is described in Part 2 of this series.)


Conclusion

Now you should be able to easily debug and find bottlenecks or the failure points of typical SCA synchronous invocations in WebSphere Process Server V6.1 using Tivoli Composite Application Manager for Response Time Tracking as a utility to view the ARM data.

The synchronous invocation type is only one of the possible invocation types; the SCA programming model supports three other asynchronous invocations:

  • One-way
  • Deferred-response
  • Callback

For a deeper understanding of the ARM transactions in these invocations and for debugging techniques using Tivoli Composite Application Manager for Response Time Tracking, read Part 2 of the series.


Resources

Learn

Get products and technologies

  • Innovate your next development project with IBM trial software, available for download or on DVD.

Discuss

About the author

Jiangwei Lv photo

Jiangwei Lv is a software development engineer in the WebSphere Business Integration team, IBM China Development Laboratory.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and Web services, WebSphere, Tivoli
ArticleID=311156
ArticleTitle=Use ARM to monitor SCA invocations in IBM WebSphere Process Server V6.1, Part 1: Debug SCA invocations using IBM Tivoli Composite Application Manager for Response Time Tracking
publish-date=05292008
author1-email=lvjw@cn.ibm.com
author1-email-cc=flanders@us.ibm.com

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers