Co-author : Deepa S
1. Created an integration node "btmds" and 2 integration servers - "server1" for deploying the applications and "server_for_recording" for recording the events.
2. Created a simple flow containing an HTTPInput => Compute => HTTPReply nodes and configured the monitoring events in the HTTPInput node along with assigning the correlation values as shown below:

3. Created a message model which contains an XML schema for the application. Monitoring events can be formatted in XML or JSON format. By default, event XML in IBM App Connect Enterprise conforms to the monitoring event schema MonitoringEventV2.xsd. Alternatively, you can configure monitoring events to be formatted in JSON format, as defined by the MonitoringEventV1.json schema.
More information regrading this can be found here
In our case we are using the eventFormat as MonitoringEventV2 so we followed the below steps to create the MonitoringEventV2.xsd schema which describes the structure of the events to be recorded.
To access the schema from the IBM App Connect Enterprise Toolkit, Right click on the application > 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 and click finish.
4.Updated the node.conf.yaml file in the overrides directory with the below configurations:
---
brokerDefaultCCSID: '5348'
brokerUUID: 'b58a6338-3e03-4d5c-a88b-9e6422683dc1'
defaultQueueManager: 'ACEQM'
MQTTServer:
port: 11908
NodeHttpListener:
startListener: false
HTTPConnector:
ListenerPort: 7080
RestAdminListener:
port: 4439
Monitoring:
MessageFlow:
publicationOn: 'active' # choose 1 of : active|inactive, default is inactive
# Ensure Events.BusinessEvents.MQ|MQTT is set
eventFormat: 'MonitoringEventV2' # choose 1 of : MonitoringEventV2|WMB
Events:
BusinessEvents: # Business monitoring events
MQ:
#policy: '' # Specify a policy in the form {policy project}:policy if not using 'defaultQueueManager'
enabled: true # Set true or false, default is false
format: '' # Set string or none
outputFormat: 'xml' # Set to xml or json, default is xml
publishRetryInterval: 0 # Set the retry interval (in milliseconds), to pause all publications and retry when publication failures are causing serious delay to the transaction.
5.Updated the server.conf.yaml file for the server_for_recording integration server in the overrides folder with the below configurations:
RecordReplay:
recordReplayEnabled: 'true'
Stores:
BTMDataStore:
backoutQueue: 'SYSTEM.BROKER.DC.BACKOUT'
commitCount: 10
commitIntervalSecs: 5
dataSource: 'RECORD'
queue: 'SYSTEM.BROKER.DC.RECORD'
schema: 'ADMINISTRATOR'
storeMode: 'all'
threadPoolSize: 10
useCoordinatedTransaction: false
6.Created the database and tables by running the following sql files
db2 -tvf DataCaptureSchema_V2.sql
db2 -tvf BusinessCaptureSchema_V2.sql
- Locate the script for your operating system:
- Windows: install_dir\server\ddl\oracle\DataCaptureSchema_V2.sql
- Linux® or UNIX: install_dir/server/ddl/oracle/DataCaptureSchema_V2.sql
install_dir is the location of your
IBM App Connect Enterprise installation.
7. Created the necessary system queues
8. Created the Business Transaction definition by selecting the server_for_recoding integration server in the WEB UI and also created the corresponding events inside the definition by selecting the integration server server1 for which we have configured the monitoring events in the message flow.
9. Click on start monitoring after creating the Business Transaction Definition and events.
10. After completing the above steps the server.conf.yaml file for the integration server server_for_recording will look like below:
BusinessTransactionDefinitions:
Order_Item:
enabled: true
policy: '{Order_Item_Policy_Project}:Order_Item_Policy'
store: 'BTMDataStore'
RecordReplay:
recordReplayEnabled: 'true'
Stores:
BTMDataStore:
backoutQueue: 'SYSTEM.BROKER.DC.BACKOUT'
commitCount: 10
commitIntervalSecs: 5
dataSource: 'RECORD'
queue: 'SYSTEM.BROKER.DC.RECORD'
schema: 'ADMINISTRATOR'
storeMode: 'all'
threadPoolSize: 10
useCoordinatedTransaction: false
11.Now deploy the message flow to integration server server1 and send the messages
12.Open the WEBUI and you will be able to see the events as shown below under the monitor tab:
