Frequently Asked Questions about the ARM API

What is ARM?

ARM stands for Application Response Measurement. It is an API jointly developed by an industry partnership that is used to monitor the availability and performance of applications. This monitoring is done from the perspective of the application itself, so it reflects those units of work that are important from the perspective of the business.

How is the ARM API used?

Applications define units of work (transactions) that are meaningful within the application. Typical examples are transactions initiated by a user, or transactions with servers. Applications then call the API when transactions begin and end, allowing these transactions to be measured and monitored.

Why is the API needed? Can't my transactions be measured in another way?

There are many different techniques for measuring response times, but only ARM measures them accurately from the perspective of the business. Other approaches, although useful in other ways, can only measure business service levels by making assumptions or guesses about what is a business transaction, and when it begins and ends. Other approaches also can't provide important information that ARM can, such as whether a transaction completed successfully.

How was ARM developed?

Version 1 of ARM was developed jointly by Tivoli Systems and Hewlett Packard in 1996. Version 2 will be available in December 1997. It was developed by an industry partnership (the ARM Working Group). Members of the ARM Working Group are BGS, BMC Software, The Boeing Company, Candle, Citicorp, Compuware, Hewlett-Packard Company, IBM, Landmark, Novell, Oracle, SAS, SES, Sun, Tivoli Systems and Unify.

Is ARM an international standard?

ARM 2.0 is an approved standard of The Open Group. It is part of the IT DialTone(tm) initiative. Although The ARM Working Group is not part of The Open Group, ARM 2.0 was submitted to The Open Group under the Direct Review process and approved in June 1998. The ARM Working Group continues to work with The Open Group and with a subgroup formed in the Desktop Management Task Force (DMTF) in 1998, "Distributed Application Performance." The Distributed Application Performance subgroup is made up mostly of members of The ARM Working Group.

Do I need to do anything besides calling the API to monitor my applications?

You need to install and configure an agent that implements the API, and an application to manage the agent. Solutions are available from several vendors.

What development tools are available to help me implement ARM?

A software developers kit can be downloaded from,, or The developers kit is also available on CD-ROM. The software developers kit contains the API Guide, sample programs, API library implementations for several platforms, and the source code for a logging agent. You use the API library implementations to give your application something to link to and call if an agent isn't available. You replace the API library implementation with an agent when installing the agent. The source code for the logging agent can be compiled and used to test the API calls in your application. There also are development tools available from vendors that support ARM.

What are the benefits if my application uses ARM?

Combining ARM calls within your application with an ARM agent, users of your application will be able to answer questions like the following. Is a transaction (and the application) hung, or are transactions failing? What is the response time? Are service level commitments being met? Who uses the application and how many of each transaction are used?

Will using ARM help me understand where problems are occurring, and how to tune the application or environment in order to perform better?

Using version 2 of ARM, applications can provide information that show how transactions are affected by other transactions, both within the same system and on different systems. This information can be used to pinpoint where response times are the longest, and where bottlenecks are occurring.

Will using ARM slow down my application?

ARM has been designed to be a high speed interface that has minimal impact on applications. ARM agents are designed to quickly extract the information that is needed and return control to the application immediately. Processing of the information is done in a different process that can run when the system is otherwise idle.

My application starts transactions in one thread or process, and ends them in a different thread or process. Can I still use ARM?

ARM fully supports cross-thread and cross-process transactions, allowing you to design your application in the most optimal way possible, and still use ARM so application performance can be monitored.

How can I get more information about ARM?

Point your browser at for information about ARM, the ARM Working Group, and the ARM Special Interest Group (SIG).