In addition to presenting performance results based on the performance of individual transactions, services, and endpoints, Business Transaction Management allows you to view performance results in terms that are meaningful to your business. You can see transaction performance segmented by business criteria: your suppliers, your users, your re-sellers, or your customers. And you can see this information even in those cases when the object of interest participates in a series of different transactions. To this end, Business Transaction Management provides a consumer business object that you can define to segment performance data using the criteria that is important to you. You can then monitor your business objects to make sure that your objectives are being met. For example,
You can view custom graphs showing performance segmented by a given consumer.
You can have Business Transaction Management generate alerts when the performance of your system for a given consumer does not meet the targets you define.
Consumers refer to Business Transaction Management consumer business objects; a consumer is an instance of the Consumer business object you have defined for your environment. The default name "Consumer" implies that this business object could be the initial client of a transaction; but it could also be the country or city where an order originates, a company name, and so on. Throughout this section, we will use the default name "consumer," with the understanding that this can refer to the wider range of criteria just mentioned.
To make the actual segmentation criteria more clear, the Business Transaction Management administrator can customize the consumer label that appears on fields, buttons, and links in the Management Console. For example, your administrator could change the label from "Consumer" to "Department", "Supplier", or any other descriptive term.
The following sections explain how you set up consumers:
On the start operation for a transaction, create a property whose value is the request message element that uniquely identifies the consumer. It could be an ID number, a social security number, a name, or an email address. If the consumer is not a person, it could be a company name, a code identifying the company, and so on. (The information you choose to supply for the property value can be based on a single message element, an xpath expression, or content in the message header.)
Map this property to the consumer attribute on the consumer business object. This mapping process is called mapping messages to consumer.
Enable consumer segmentation in your transaction definition.
The figure below shows a simple mapping between a property called
request.submit.order.customerEmail element of the starting message of a transaction) and the default attribute of the business object,
If consumer segmentation is enabled for the transaction, once traffic starts to flow, Business Transaction Management inspects the value of the
If it finds an existing consumer whose name is email@example.com, it records measurements for that consumer.
If it does not find a consumer of that name, it creates the consumer, assigns it the value of the property as its name, and records measurements for it.
The business object that Business Transaction Management provides by default is adequate for the simple case where you are monitoring one specific kind of consumer and you are satisfied to use the value of the property as the consumer name. In reality, you might need to handle more complicated situations. To do that, you can customize the definition of the consumer business object by adding custom attributes. Using these attributes, you can teach Business Transaction Management to recognize the same consumer though the consumer is identified by different properties.
For example, what happens if we want to monitor several transactions, and in each transaction the consumer of interest is identified in a different way? In one transaction, the consumer is identified by email address, and in the other, by a social security number.
The following figure shows two transactions, Tx1 and Tx2. Tx1 has a
customerEmail element mapped to the
SSNumber property. You want Business Transaction Management to monitor both transactions and to recognize that the same consumer is involved whether that consumer is identified by the
SSNumber property. To do this, you must add two custom attributes to the Consumer business object and map each property to its corresponding attribute.
For the sake of this example, let us assume that all consumers involved in these transactions have already been created. Once traffic starts to flow, Business Transaction Management inspects the value of each of the properties shown as it observes messages. If it encounters either an email address or social security number associated with an existing consumer, it records measurements for that consumer. This makes it possible to see performance information for a given consumer that is an aggregate of performance across all the transactions in which the consumer participates.
In this more complicated case, setting up consumer segmentation would involve the following:
Add custom attributes to the consumer business object that will correspond to the properties you will create in Step 2.
For each transaction you want to segment by consumer: Create a property whose value is the request message element that uniquely identifies the consumer.
Map each property to its corresponding business object custom attribute.
Enable consumer segmentation in your transaction definition.
(You can do steps 2-4 all at once when you define consumer segmentation for a transaction.)
If you have set up consumer segmentation, Business Transaction Management automatically creates a consumer whenever it encounters a message for a consumer that does not already exist.
According to the information you provide when you choose Create > Consumer and supply values for the consumer name and attributes.
According to the information you provide using the
If you create consumers manually, as with the last two options, consumer monitoring will only start after you set up consumer segmentation.
By default, discovered consumers are named according to the value of the message property to which you map them. For example, if you use a property that holds an email address, the name of the consumer displayed in the Management Console is the email address of the consumer. If the value of the property is the user's full name, that name is displayed in the Management Console. You can edit the name that will be displayed for a consumer by editing the consumer profile. If you see a combination of formats used to display user names, this might result from the fact that some were created manually (and assigned an actual name) and others were added automatically and assigned the value of the property used to map messages to consumers.
If you decide that you want to change the default consumer name, please note that you must add an attribute to the business object that corresponds to the property used for segmentation and that you must then map the property to that attribute. In the following illustration, an
Name field of the Profile tab for the consumer.