Capitalware has an MQ solution called MQ Message Replication (MQMR).
MQ Message Replication will clone messages being written (via MQPUT or MQPUT1 API calls) to an application’s output queue and MQMR will write the exact same messages to ‘n’ target queues (‘n’ can be up to 100). When MQMR replicates a message both the message data and the message’s MQMD structure will be cloned. This means that the fields of the MQMD structure (i.e. PutTime, MessageId, CorrelId, UserId, etc..) will be exactly the same as the original message’s MQMD structure.
Recently, a customer wanted to duplicate messages from Temporary Dynamic Queues. The problem is that Temporary Dynamic Queues usually have a set of random numbers after a prefix value. i.e. AMQ.6734F2FC25BBE503
MQMR was designed handle a complete queue name.
i.e.
[Q:TEST.XYZ.Q] AddSourceInfo = Y TargetQueues=TEST.XYZ.COPY01.Q;TEST.XYZ.COPY02.Q;TEST.XYZ.COPY03.Q
The customer said that they tried starting the application, quickly getting the Temporary Dynamic Queue name then setting it in MQMR’s IniFile but the problem is that as soon as the application is restarted or closes and re-opens the Temporary Dynamic Queue then MQMR will be using the wrong queue name for duplicating messages.
The customer said that the prefix for the Temporary Dynamic Queue is a known value. i.e. AMQ.ABC.*
Hence, I decided to make an enhancement to MQMR so that it supports wildcards in the queue/section name in the MQMR IniFile.
i.e.
[Q:AMQ.ABC.*] AddSourceInfo = Y TargetQueues=AMQ.ABC.COPY01.Q;AMQ.ABC.COPY02.Q
Of course, this also means that the MQAdmin can now specify wildcards in any type of queue name. i.e. local, remote, alias & cluster
i.e. local queue
[Q:TEST.HR.*.Q] AddSourceInfo = Y TargetQueues=TEST.HR.COPY01.Q;TEST.HR.COPY02.Q;TEST.HR.COPY03.Q
If anyone would like to test out the latest release then send the email to support@capitalware.com
Regards,
Roger Lacroix
Capitalware Inc.