Adding a remote queue definition to isolate messages sent from a gateway queue manager
Modify the configuration of overlapping clusters that use a gateway queue manager. After the modification messages are transferred to an application from the gateway queue manager without using the same transmission queue or channels as other cluster messages. The solution uses a clustered queue remote definition, and a separate sender channel and transmission queue.
Before you begin
Construct the overlapping clusters shown in Client-server application deployed to hub and spoke architecture using IBM® MQ clusters in Creating two-overlapping clusters with a gateway queue manager by following the steps in that task.
About this task
The solution uses distributed queuing to separate the messages for the Server App
application from other message traffic on the gateway queue manager. You must define a clustered remote queue definition on QM1
to divert the messages to a different transmission queue, and a different channel. The remote queue definition must include a reference to the specific transmission queue that stores messages only for Q1
on QM3
. In Figure 1, the cluster queue alias Q1A
is supplemented by a remote queue definition Q1R
, and a transmission queue and sender-channel added.
In this solution, any reply messages are returned using the common SYSTEM.CLUSTER.TRANSMIT.QUEUE
.
The advantage of this solution is that it is easy to separate traffic for multiple destination queues on the same queue manager, in the same cluster. The disadvantage of the solution is that you cannot use cluster workload balancing between multiple copies of Q1
on different queue managers. To overcome this disadvantage, see Adding a cluster transmit queue to isolate cluster message traffic sent from a gateway queue manager. You also have to manage the switch from one transmission queue to the other.
Procedure
What to do next
Test the configuration by sending a message to Q1
on QM3
from QM2
using the clustered queue remote definition Q1R
on the gateway queue manager QM1
.
- Run the sample program amqsput on
QM2
to put a message.
C:\IBM\MQ>amqsput Q1R QM2
Sample AMQSPUT0 start
target queue is Q1R
Sample request message from QM2 to Q1 using Q1R
Sample AMQSPUT0 end
- Run the sample program amqsget to get the message from
Q1
onQM3
C:\IBM\MQ>amqsget Q1 QM3
Sample AMQSGET0 start
message <Sample request message from QM2 to Q1 using Q1R>
no more messages
Sample AMQSGET0 end