If you are using an integration server without an associated MQ queue manager, you can still achieve business process monitoring feature using MQTT (IIB’s built-in MQTT server or an external MQTT server). ACE event messages can be subscribed for categories such as:
Message flow performance
Resource performance
Monitoring
This blog will cover how to achieve flow monitoring using MQTT.
Also, for testing purpose, we need an MQTT Server. Here we can use the MQ Telemetry feature provided by IBM MQ. We can run the default configuration wizard for any MQ Queue Manager to start the MQTT service. To specify this MQTT server in our integration Server, we need to create a policy project and policy that points to this MQTT server as shown here:
Start an Integration Server by the following command and then deploy the above application & policy project:
IntegrationServer --name ACEServ1 --work-dir C:\ACE\ACEServ1
Enable Business Events through MQTT and Message Flow Monitoring in server.conf.yaml of the Integration server, also specify the MQTT policy as shown in the screenshot:
Now Restart the Integration Server:
IntegrationServer --name ACEServ1 --work-dir C:\ACE\ACEServ1
Subscribe to the Topic using any MQTT Client:
IBM/IntegrationBus/integration_server/Monitoring/ACEServ1/IIB9App1/CopyQueue
Or
IBM/IntegrationBus/integration_server/Monitoring/# (using wildcard)
<mon:event xmlns:mon="http://www.ibm.com/xmlns/monitoring/event/v2"> <mon:eventPointData> <mon:eventData mon:productVersion="11001" mon:profileVersion="11" mon:eventSourceAddress="MQ Input.transaction.Start"> <mon:eventIdentity mon:eventName="MQ Input.TransactionStart"/> <mon:eventSequence mon:creationTime="2018-12-20T05:25:10.496140Z" mon:counter="1"/> <mon:eventCorrelation mon:localTransactionId="8398aaae-bed0-43eb-a099-efe99e153886-3" mon:parentTransactionId="" mon:globalTransactionId=""/> </mon:eventData> <mon:messageFlowData> <mon:integrationServer mon:name="ACEServ1" mon:hostName="RC952"/> <mon:application mon:name="IIB9App1"/> <mon:messageFlow mon:uniqueFlowName="ACEServ1.IIB9App1.CopyQueue" mon:name="CopyQueue" mon:threadId="26364"/> <mon:node mon:nodeLabel="MQ Input" mon:nodeType="ComIbmMQInputNode" mon:detail="input"/> </mon:messageFlowData> </mon:eventPointData> </mon:event>
Here is how you can debug ACE toolkit apps, enable debug port jvmDebugPort in server.conf.yaml and then give the same port in Debug > Debug Configurations as:
2 Comments
Am following same but it’s not working
I used the same but does not work, may be a local Queue manager associated with a Integration server is required