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 Figure 1 in Creating two-overlapping clusters with a gateway queue manager by following the steps in that task.
About this task
The solution uses distributed queueing 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