The monitoring event

You can configure IBM® App Connect Enterprise to emit a monitoring event (an XML document) when something interesting happens. Events are typically emitted to support transaction monitoring, transaction auditing, and business process monitoring. By default, the event XML in IBM App Connect Enterprise v11 conforms to the monitoring event schema MonitoringEventV2.xsd. However, monitoring events can be configured to provide compatibility with the monitoring event schema from IBM Integration Bus Version 10.0, WMBEvent.xsd.

For more information about how to configure monitoring events to use MonitoringEventV2.xsd or WMBEvent.xsd, see Activating monitoring.

MonitoringEventV2 Format

The XML schema definition file is MonitoringEventV2.xsd.

To access the schema from the IBM App Connect Enterprise Toolkit, click File > New > Message Model. Select IBM supplied . Click Next, then select Create an XML file by importing an IBM supplied definition . Click Next, and then select IBM App Connect Enterprise Monitoring Event.

MonitoringEventV2 example event

<mon:event xmlns:mon="http://www.ibm.com/xmlns/monitoring/event/v2">
	<mon:eventPointData>
		<mon:eventData mon:productVersion="110010"
			mon:profileVersion="11" mon:eventSourceAddress="HTTP Input.transaction.Start">
			<mon:eventIdentity mon:eventName="HTTP Input.TransactionStart" />
			<mon:eventSequence mon:creationTime="2020-07-20T16:20:21.776758Z"
				mon:counter="1" />
			<mon:eventCorrelation mon:localTransactionId="40ddc412-f102-4840-a212-8b793d12b6bf-1"
				mon:parentTransactionId="" mon:globalTransactionId="" />
		</mon:eventData>
		<mon:messageFlowData>
			<mon:integrationServer mon:name="110010"
				mon:hostName="DESKTOP-7Q9JIP6" />
			<mon:application mon:name="Transformation_Map" />
			<mon:messageFlow mon:uniqueFlowName="110010.Transformation_Map.Transformation_Map"
				mon:name="Transformation_Map" mon:threadId="12244" />
			<mon:node mon:nodeLabel="HTTP Input" mon:nodeType="ComIbmWSInputNode" />
		</mon:messageFlowData>
	</mon:eventPointData>
	<mon:bitstreamData>
		<mon:bitstream mon:serializationEncoding="base64Binary"
			mon:dataCCSID="1208" mon:dataEncoding="546">UE9TVCBodHRwOi8vbG9jYWxob3N0Ojc4MDAvVHJhbnNmb3JtYXRpb25fTWFwIEhUVFAvMS4xDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgNClVzZXItQWdlbnQ6IEphdmEvMS44LjBfMjUxDQpIb3N0OiBsb2NhbGhvc3Q6NzgwMA0KQWNjZXB0OiB0ZXh0L2h0bWwsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgKjsgcT0uMiwgKi8qOyBxPS4yDQpDb25uZWN0aW9uOiBrZWVwLWFsaXZlDQpDb250ZW50LUxlbmd0aDogNjgwDQpYLU9yaWdpbmFsLUhUVFAtQ29tbWFuZDogUE9TVCBodHRwOi8vbG9jYWxob3N0Ojc4MDAvVHJhbnNmb3JtYXRpb25fTWFwIEhUVFAvMS4xDQpYLVNlcnZlci1OYW1lOiBsb2NhbGhvc3QNClgtU2VydmVyLVBvcnQ6IDc4MDANClgtUmVtb3RlLUFkZHI6IDEyNy4wLjAuMQ0KWC1SZW1vdGUtSG9zdDogbG9jYWxob3N0DQpYLVNjaGVtZTogaHR0cA0KDQo8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KPFNhbGVFbnZlbG9wZT4NCgk8SGVhZGVyPg0KCQk8U2FsZUxpc3RDb3VudD4xPC9TYWxlTGlzdENvdW50Pg0KCQk8VHJhbnNmb3JtYXRpb25UeXBlPnhzbDwvVHJhbnNmb3JtYXRpb25UeXBlPg0KCTwvSGVhZGVyPg0KCTxTYWxlTGlzdD4NCgkJPEludm9pY2U+DQoJCQk8SW5pdGlhbD5UPC9Jbml0aWFsPg0KCQkJPEluaXRpYWw+SjwvSW5pdGlhbD4NCgkJCTxTdXJuYW1lPkR1bm53aW48L1N1cm5hbWU+DQoJCQk8SXRlbT4NCgkJCQk8Q29kZT4wNDwvQ29kZT4NCgkJCQk8Q29kZT4wNTwvQ29kZT4NCgkJCQk8Q29kZT4wMTwvQ29kZT4NCgkJCQk8RGVzY3JpcHRpb24+VGhlIE9yaWdpbiBvZiBTcGVjaWVzPC9EZXNjcmlwdGlvbj4NCgkJCQk8Q2F0ZWdvcnk+Qm9va3MgYW5kIE1lZGlhPC9DYXRlZ29yeT4NCgkJCQk8UHJpY2U+MjIuMzQ8L1ByaWNlPg0KCQkJCTxRdWFudGl0eT4wMjwvUXVhbnRpdHk+DQoJCQk8L0l0ZW0+DQoJCQk8QmFsYW5jZT44MS44NDwvQmFsYW5jZT4NCgkJCTxDdXJyZW5jeT5FdXJvczwvQ3VycmVuY3k+DQoJCTwvSW52b2ljZT4NCgk8L1NhbGVMaXN0Pg0KCTxUcmFpbGVyPg0KCQk8Q29tcGxldGlvblRpbWU+MTIuMDAuMDA8L0NvbXBsZXRpb25UaW1lPg0KCTwvVHJhaWxlcj4NCjwvU2FsZUVudmVsb3BlPg==</mon:bitstream>
	</mon:bitstreamData>
</mon:event>

WMB Format

The XML schema definition file is WMBEvent.xsd.

You can find the WMBEvent.xsd schema file in the default message catalog. To access the schema from the IBM App Connect Enterprise Toolkit, click File > New > Message Model. Select IBM supplied . Click Next, then select Create an XML file by importing an IBM supplied definition . Click Next, and then select IBM Integration Bus Monitoring Event.

WMB example event

<wmb:event
	xmlns:wmb="http://www.ibm.com/xmlns/prod/websphere/messagebroker/6.1.0/monitoring/event">
	<wmb:eventPointData>
		<wmb:eventData wmb:productVersion="110010"
			wmb:eventSchemaVersion="11" wmb:eventSourceAddress="HTTP Input.transaction.Start">
			<wmb:eventIdentity wmb:eventName="HTTP Input.TransactionStart" />
			<wmb:eventSequence wmb:creationTime="2020-07-20T16:15:24.728446Z"
				wmb:counter="1" />
			<wmb:eventCorrelation wmb:localTransactionId="c4b687e6-4f51-4f61-ae3b-92c3115e9e42-1"
				wmb:parentTransactionId="" wmb:globalTransactionId="" />
		</wmb:eventData>
		<wmb:messageFlowData>
			<wmb:broker wmb:name="integration_server" />
			<wmb:executionGroup wmb:name="110010" />
			<wmb:messageFlow
				wmb:uniqueFlowName="integration_server.110010.Transformation_Map.Transformation_Map"
				wmb:name="Transformation_Map" wmb:threadId="17376" />
			<wmb:node wmb:nodeLabel="HTTP Input" wmb:nodeType="ComIbmWSInputNode" />
		</wmb:messageFlowData>
	</wmb:eventPointData>
	<wmb:bitstreamData>
		<wmb:bitstream wmb:encoding="base64Binary">UE9TVCBodHRwOi8vbG9jYWxob3N0Ojc4MDAvVHJhbnNmb3JtYXRpb25fTWFwIEhUVFAvMS4xDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgNClVzZXItQWdlbnQ6IEphdmEvMS44LjBfMjUxDQpIb3N0OiBsb2NhbGhvc3Q6NzgwMA0KQWNjZXB0OiB0ZXh0L2h0bWwsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgKjsgcT0uMiwgKi8qOyBxPS4yDQpDb25uZWN0aW9uOiBrZWVwLWFsaXZlDQpDb250ZW50LUxlbmd0aDogNjgwDQpYLU9yaWdpbmFsLUhUVFAtQ29tbWFuZDogUE9TVCBodHRwOi8vbG9jYWxob3N0Ojc4MDAvVHJhbnNmb3JtYXRpb25fTWFwIEhUVFAvMS4xDQpYLVNlcnZlci1OYW1lOiBsb2NhbGhvc3QNClgtU2VydmVyLVBvcnQ6IDc4MDANClgtUmVtb3RlLUFkZHI6IDEyNy4wLjAuMQ0KWC1SZW1vdGUtSG9zdDogbG9jYWxob3N0DQpYLVNjaGVtZTogaHR0cA0KDQo8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KPFNhbGVFbnZlbG9wZT4NCgk8SGVhZGVyPg0KCQk8U2FsZUxpc3RDb3VudD4xPC9TYWxlTGlzdENvdW50Pg0KCQk8VHJhbnNmb3JtYXRpb25UeXBlPnhzbDwvVHJhbnNmb3JtYXRpb25UeXBlPg0KCTwvSGVhZGVyPg0KCTxTYWxlTGlzdD4NCgkJPEludm9pY2U+DQoJCQk8SW5pdGlhbD5UPC9Jbml0aWFsPg0KCQkJPEluaXRpYWw+SjwvSW5pdGlhbD4NCgkJCTxTdXJuYW1lPkR1bm53aW48L1N1cm5hbWU+DQoJCQk8SXRlbT4NCgkJCQk8Q29kZT4wNDwvQ29kZT4NCgkJCQk8Q29kZT4wNTwvQ29kZT4NCgkJCQk8Q29kZT4wMTwvQ29kZT4NCgkJCQk8RGVzY3JpcHRpb24+VGhlIE9yaWdpbiBvZiBTcGVjaWVzPC9EZXNjcmlwdGlvbj4NCgkJCQk8Q2F0ZWdvcnk+Qm9va3MgYW5kIE1lZGlhPC9DYXRlZ29yeT4NCgkJCQk8UHJpY2U+MjIuMzQ8L1ByaWNlPg0KCQkJCTxRdWFudGl0eT4wMjwvUXVhbnRpdHk+DQoJCQk8L0l0ZW0+DQoJCQk8QmFsYW5jZT44MS44NDwvQmFsYW5jZT4NCgkJCTxDdXJyZW5jeT5FdXJvczwvQ3VycmVuY3k+DQoJCTwvSW52b2ljZT4NCgk8L1NhbGVMaXN0Pg0KCTxUcmFpbGVyPg0KCQk8Q29tcGxldGlvblRpbWU+MTIuMDAuMDA8L0NvbXBsZXRpb25UaW1lPg0KCTwvVHJhaWxlcj4NCjwvU2FsZUVudmVsb3BlPg==</wmb:bitstream>
	</wmb:bitstreamData>
</wmb:event>
You can set the MQSI_EVENTMON_USE_OPTIONAL_WMB_ATTRS environment variable to include the UUID option values for the messageFlowData elements in the schema.
  • If the MQSI_EVENTMON_USE_OPTIONAL_WMB_ATTRS is not set, the messageFlowData might look similar to this:
    <wmb:messageFlowData>
                <wmb:broker wmb:name="EVENT_TEST" />
                <wmb:executionGroup wmb:name="default" />
                <wmb:messageFlow wmb:uniqueFlowName="EVENT_TEST.default.httpEcho.httpEcho" wmb:name="httpEcho" wmb:threadId="1823762" />
                <wmb:node wmb:nodeLabel="HTTP Input" wmb:nodeType="ComIbmWSInputNode" />
    </wmb:messageFlowData>
  • If you set the MQSI_EVENTMON_USE_OPTIONAL_WMB_ATTRS=1, the messageFlowData includes the UUID fields, for example:
    <wmb:messageFlowData>
                <wmb:broker wmb:name="EVENT_TEST" wmb:UUID="00000000-0000-0000-0000-000000000000" />
                <wmb:executionGroup wmb:name="default" wmb:UUID="00000000-0000-0000-0000-000000000000" />
                <wmb:messageFlow wmb:uniqueFlowName="EVENT_TEST.default.httpEcho.httpEcho" wmb:name="httpEcho" wmb:UUID="00000000-0000-0000-0000-000000000000" wmb:threadId="1824822" />
                <wmb:node wmb:nodeLabel="HTTP Input" wmb:nodeType="ComIbmWSInputNode" />
    </wmb:messageFlowData>
Each event contains the following information:
  • Source of the event
  • Name of the event
  • Creation time and sequence number
  • Correlation ID for events that are emitted by the same transaction or unit of work.
  • Details of the message flow
Tip: A terminal emits an event only if the message passes through that terminal. In particular, the output terminal of an output node emits events only if it is connected.
A monitoring event can also contain the following items:
  • Application data extracted from the message.
  • Part or all of the message bit stream. All nodes can produce bit streams, which can be included in monitoring events.
Use either the monitoring properties of a message flow or a monitoring profile to configure the following items:
  • The source of the event
  • The content of the event

Sequence number

To enable software that processes events, such as WebSphere® Business Monitor, to sequence them correctly, both an ISO 8601 timestamp and a counter attribute are produced. The counter attribute is in the EventSequence element of the monitoring event. This counter starts at 1 for the first event that is produced by the processing of a message (normally the transaction.Start event) and is incremented for each subsequent event produced. It is reset to 1 at the start of the next message. The creation time and counter are always produced on all monitoring events. The software that processes the events can choose which field, or a combination of the two, to use to sequence the events.

If a message is processed successfully, the monitoring events that are generated have a contiguous, incrementing set of counter values. The value starts at 1 and is assigned at the time when the event is created. If a message fails and is rolled back, gaps can occur in the counter sequence. The missing values are the values that were used for events that were produced as part of the message flow unit of work that was rolled back.

Monitoring events can be included in the main unit of work of a message flow, an independent unit of work, or outside of a unit of work. Therefore, if a message flow fails the sequence numbers are not necessarily contiguous. For example, consider the following scenario:
  • Sequence 1. The transaction start event.
  • Sequence 2, 3, 4. Events in the message flow unit of work.
  • Sequence 5. The independent unit of work.
  • Sequence 6. An event outside of a unit of work.
  • Sequence 7. An event in the message flow unit of work.
  • Sequence 8. An event outside of a unit of work.
  • The flow then fails and is rolled back.
  • Sequence 9. The transaction rollback event in the independent unit of work.
Only sequence numbers 1, 5, 6, 8 and 9 are sent to the monitoring application.

Default content of monitoring events

When an event is emitted, the fields for the event are created by using the information that is provided by the monitoring properties of the message flow or the monitoring profile. Any event field that is not explicitly specified is given a default value as shown in the table.
Field in event Default value MonitoringEventV2 Default Value WMB
bitstreamData.bitstream@dataCCSID The original CCSID of the message data provided in the bitstream Not applicable
bitstreamData.bitstream@dataEncoding The original encoding of the message data provided in the bitstream Not applicable
eventData/@wmb: eventSourceAddress No default; you must provide this information. No default; you must provide this information.
eventData/@wmb: eventSchemaVersion Not applicable 6.1.0.3
eventData/@wmb:productVersion   7000
eventData/eventIdentity/@wmb:eventName The default is derived from @eventSourceAddress. The default is derived from @eventSourceAddress.
eventData/eventSequence/@counter The counter is set to 1 for first event that is emitted and increased by 1 for each subsequent event. The counter is set to 1 for first event that is emitted and increased by 1 for each subsequent event.
eventData/eventSequence/@creationTime The date and time when the event was created. The date and time when the event was created.
eventData/eventCorrelation/@localTransactionId A generated unique identifier. This identifier is not generated if only transaction rollback or end events, or both, are configured, unless a transaction start event is configured as well. A generated unique identifier. This identifier is not generated if only transaction rollback or end events, or both, are configured, unless a transaction start event is configured as well.
eventData/eventCorrelation/@parentTransactionId No default. Unless you set this value, an empty string is used. No default. Unless you set this value, an empty string is used.
eventData/eventCorrelation/@globalTransactionId No default. Unless you set this value, an empty string is used. No default. Unless you set this value, an empty string is used.
messageFlowData/@application Application name Not applicable
messageFlowData/@library Library name Not applicable
messageFlowData/broker/@name Not applicable. The name of the integration node.
messageFlowData/executionGroup/@name Not applicable. The name of the integration server.
messageFlowData/integrationNode/@name The name of the integration node. Not applicable.
messageFlowData/integrationServer The name of the integration server. Not applicable.
messageFlowData/messageFlow/@name The name of the message flow. The name of the message flow.
messageFlowData/messageFlow/@uniqueFlowName A string composed of the names of the integration node, integration server, and flow in the form: integrationNodeName.integrationServerName.application_name.flow_name A string composed of the names of the integration node, integration server, and flow in the form: integrationNodeName.integrationServerName.application_name.flow_name
messageFlowData/messageFlow/@threadId The thread ID of the message flow. The format depends on the operating system. The thread ID of the message flow. The format depends on the operating system.
messageFlowData/node/@nodeLabel The label of the node that emitted the event. The label of the node that emitted the event.
messageFlowData/node/@nodeType The type of the node that emitted the event. The type of the node that emitted the event.
messageFlowData/node/@nodeDetail Optional information about the node.
MQInput
The name of the queue.
Other nodes
Omitted.
Optional information about the node.
MQInput
The name of the queue.
Other nodes
Omitted.
applicationData No default; omitted if not provided. No default; omitted if not provided.
bitstreamData No default; omitted if not provided. No default; omitted if not provided.

XPath queries that end in a wildcard

If an XPath query ends in a wildcard, each element node or attribute node appears in a separate complexContent or simpleContent folder in the emitted event.