Scenario
You have an IBM MQ queue manager. An application is putting messages to a command queue. Another application gets these messages from the queue and takes actions in response.

Objective
You want multiple separate audit applications to be able to review the commands that go through the command queue.
They should be able to replay a history of these command messages as many times as they want.
This must not impact the application that is currently getting the messages from the queue.

Solution
You can use Streaming Queues to make a duplicate of every message put to the command queue to a separate copy queue.
This copy queue can be used to feed a connector that can produce every message to a Kafka topic. This Kafka topic can be used by audit applications

Details
The final solution works like this:

- A JMS application called
Putterputs messages onto an IBM MQ queue calledCOMMANDS - For the purposes of this demo, a development-instance of LDAP is used to authenticate access to IBM MQ
- A JMS application called
Gettergets messages from theCOMMANDSqueue - Copies of every message put to the COMMANDS queue will be made to the
COMMANDS.COPYqueue - A Connector will get every message from the COMMANDS.COPY queue
- The Connector transforms each JMS message into a string, and produces it to the
MQ.COMMANDSKafka topic - A Java application called
Auditcan replay the history of all messages on the Kafka topic


