SOA Performance Monitoring with JaxView


JaxView provides tools for monitoring and reporting on the performance of services in the SOA environment. This section describes some of the ways that JaxView can be used to help manage performance of service-oriented systems.

Monitoring Web Service Performance

JaxView includes a variety of monitor types that can be used to monitor service performance. This includes:

Configuring performance monitoring is easy in JaxView. The following is an overview of the steps you use to set up performance monitors.

  1. Collect the information about how to connect to and retrieve service information for the Web services you want to monitor.
  2. Configure monitor definition objects with the names and threshold settings you want using the Monitors tab page in JaxView. Alternately, you can create and assign monitors after adding the service definitions to JaxView.
  3. Add the service definitions to the Services object tree in JaxView. When adding service definitions, you can assign performance monitors to the operations offered by the service by using the Monitors to Assign selection sub panel near the bottom of the Add Service form. Alternately, you can choose to not assign monitors at this step but assign them later.
  4. Once service definitions have been added to group nodes in the Services object tree, you can assign monitors to the service operations by using the right click action menu for Service node in Services tab or using the action menu for a particular monitor in the Monitors object tree.

Performance Baselines

Performance monitoring can be further enhanced by the use of baselined event trigger thresholds. This can help avoid false event alerts by setting the event trigger threshold logic for performance monitors dynamically to reflect previous usage and response time trends. Each monitor type can be configured to use a baselining option to calculate error and warning thresholds. See the section on Baselining for more information.

Monitoring Web Service Transactions

Transactions are sequences of actions that accomplish a business process. Transaction monitoring in a service-oriented environment can be more challenging because of the loosely-coupled design paradigm of SOA. Transactions involving more than one service endpoint need some method for coordinating and tracking the transaction request and its progress.

Prerequisites

The implementation of transactions in the service-oriented environment can vary significantly in the details. The following are some general prerequisites for preparing to configure transaction monitoring with JaxView:

Configure Transaction Monitoring

The following is an overview of the steps you use to set up transaction monitoring.

  1. Identify all the service locations or endpoints that are involved in the transaction be monitored
  2. Create one or more group objects in the JaxView Services object tree under the Service tab

  3. Add a definition for each of the service locations to the Services object tree in the Services tab in JaxView, assigning the service definitions to the group(s) created for them. See the section Working with Web Services in JaxView for more information on adding Web service definitions to JaxView.
  4. Create a new transaction using the Transactions tab. The transaction will reference Web service operations that were added to the JaxView Services object tree when the service definitions were created in the step above. You will need to define expressions using XPath syntax or a regular expression to identify where transaction context data is found in the messages. See the section on Transactions for more information on adding transactions in JaxView.
  5. Configure Error and Warning threshold conditions for the transaction and save the transaction definition
  6. Assign an event notification rule and alert action to the transaction.

Active Monitoring of Web Service Availability

Most of JaxView's monitoring capabilities are considered passive monitoring. This means that JaxView listens to request and response messages being exchanged in the service environment and watches for message content or calculates response times or usage rates. This type of passive monitoring is based on the assumption that there are real service consumers making request of service producers. From an operational viewpoint it is also useful to know if the Web service producers are operational even when there is no message traffic. Since Web services enforce message format contracts, using simple URL monitoring tools are not sufficient to determine if a service is responding correctly. JaxView provides two “heartbeat” monitors that actively test service availability:

Each of these monitor types can be configured to send a request to a service location at a regular interval. This provides assurance of service availability during times when real user traffic may be low.

The steps you use to configure and add these monitor types are similar to the steps used to add other performance monitor types. See the section on Monitor Types for more information on the properties for these monitor types.