Business transaction monitoring overview

Business transaction monitoring involves monitoring a message across multiple message flows, so you can track and report the lifecycle of a payload message through an end-to-end enterprise transaction.

Business transaction monitoring enables you to track the outcomes of work passing through a message flow, allowing you to see which aspects of your business transaction are working correctly and which aspects are failing.

Video: Business Transaction Monitoring

This video demonstrates the capability called Business Transaction Monitoring. The video describes the key concepts and demonstrates an overview of how to configure and use Business Transaction Monitoring.

The following terms describe aspects of business transaction monitoring:
Business transaction
A set of business events or actions that form a self-contained business use case, such as the booking of an airline ticket. A business transaction might be implemented as multiple user transactions or activities.
Business transaction instance
One instance of a business transaction. Multiple instances of a business transaction can be running concurrently, such as when multiple customers are booking airline tickets.
Business transaction definition
The definition of the business transaction, which you create by using the web user interface. The business transaction definition specifies the flows that are part of the business transaction. It also specifies which monitoring events signify the start and end of the business transaction, which events show that a business transaction is in progress, and which events signify a failure in the transaction.

The business transaction definition comprises information that is specified in a business transaction policy, and configuration properties that are set in the integration server's server.conf.yaml file. The business transaction policy defines the events that will be monitored as part of the business transaction, and the configuration properties in the integration server's server.conf.yaml file specify the name of the policy and the data store.

When you create the business transaction definition in the web user interface, you specify the name of a business transaction policy and select the business events that will be monitored as part of the business transaction. If the policy already exists, it is updated automatically with the business events that you have specified. If the policy does not exist, it is created for you. The BusinessTransactionDefinitions section of the integration server's server.conf.yaml file is updated automatically with the name of the policy that you selected.

Business transaction event
A monitoring event that signifies the start, end, or failure of a business transaction or shows how the transaction is progressing. Monitoring events are defined for the message flows in your business transaction. When you create a business transaction definition, you select appropriate monitoring events and flag them as start, end, failure, or progress business transaction events. Not all monitoring events need to be flagged as business transaction events.

A start business transaction event typically corresponds with an input node in a message flow. This event signifies that when a message is received on that input node, the business transaction starts.

An end business transaction event typically corresponds with a transaction end event for an input node. This event signifies that when a message reaches the end of that flow, the business transaction is complete.

A failure business transaction event typically corresponds with a node that handles error processing. This event signifies that when a message reaches this node, the business transaction has failed.

A progress business transaction event can correspond with any type of node in a message flow. This event signifies that a message has reached a particular node in the flow.

These business transaction events are used to show the progress of a business transaction on the Monitor tab of the business transaction monitor:
  • If a start event is issued for a business transaction, but the end event or failure event is not yet issued, that business transaction instance is shown as being In progress.
  • If an end event is issued for a business transaction, that business transaction instance is shown as being Complete.
  • If a failure event is issued for a business transaction, that business transaction instance is shown as having Failed.
  • If an in-progress event is received after an end event, the business transaction is shown as being Inconsistent. Other situations can also result in an inconsistent business transaction.

You can use business transaction monitoring to track the lifecycle of a message through an end-to-end enterprise transaction. Business transaction monitoring uses events that are emitted from message flows, and a transaction is correlated across a set of events using the global transaction ID that is defined in an event. The global transaction ID can be inferred from an upstream node by using the Automatic property, or you can set it explicitly with an XPath expression.

Tip: It is not necessary to flag all monitoring events in a business transaction as business events, and doing so can adversely affect the performance of business transaction monitoring. The extent to which performance is affected depends on the number and complexity of business transaction events, and the rate at which they are being processed. When business events are emitted by the flows, they are read from MQ topics and put to an MQ queue, which is specified in the integration server's server.conf.yaml file (by default, this queue name is SYSTEM.BROKER.DC.RECORD). Performance of the business transaction monitor can be impacted if the business events are emitted to the queue faster than they can be written to the database. To improve performance, focus on flagging events that occur in error conditions, so that you can monitor when and why a business transaction might have failed.

For event monitoring, the presentation of data is event-oriented. For business transaction monitoring, presentation of data is transaction-oriented. Initially, business transaction data is presented as a summary of transactions. You can then view the details of the business transaction, the system-level transactions, and a list of events by inspecting individual transactions.

The web user interface is used to monitor business transactions. You create a business transaction definition to identify the message flows that form the business transaction, and define how they interact with each other. You can view the monitoring events that are defined for the message flows that make up the business transaction. Some of these events are significant to the business transaction. The business transaction definition defines how these events apply to the business transaction. Existing monitoring events can be selected as start, end, failure, and progress events in the business transaction.

A business transaction policy specifies the business events that will take part in the business transaction, and this policy forms one part of the business transaction definition. Additional configuration information, such as details of the data store that contains the business data for the business transaction, is specified in the integration server's server.conf.yaml configuration file. You set the database location by specifying the data store in the server.conf.yaml file, and the business transaction policy is updated with the new data source name as a result. It is not necessary to make any other changes to the business transaction policy; however, if you want to change any other properties in the policy, you can modify it by using an external editor. For more information, see Creating a business transaction definition.

The results of business transactions can be viewed in the web user interface. You can see which instances of business transactions are in progress, which instances completed successfully, and which instances failed. Detailed information is also shown for the transaction-specific events of a business transaction.

The business transaction monitor in the web user interface has two tabs: Configure and Monitor. Use the Configure tab to create or modify a business transaction definition, and to define the business events that participate in the business transaction. Create a new business transaction definition by clicking the Create a transaction definition button, and specifying the business transaction policy in which the business events are to be defined. For a monitoring event to be part of a business transaction, it must be explicitly added to the business transaction definition as a business event, by clicking the Create an event button in the Configure tab, and then selecting the monitoring event that you want to define as a business event. For more information, see Creating a business transaction definition and Updating a business transaction definition.

Use the Monitor tab to view instances of the business transaction, and the status of those instances and associated events. To show all the latest business transactions, click the Refresh icon (Refresh icon). Alternatively, you can show only the instances that have a particular status, or instances that were last updated within a specified period of time. For more information, see Viewing the results of business transaction monitoring.