添加远程队列定义以隔离从网关队列管理器发送的消息
修改使用网关队列管理器的重叠集群的配置。 修改消息从网关队列管理器传输到应用程序后,不使用与其他集群消息相同的传输队列或通道。 该解决方案使用集群队列远程定义以及单独的发送方通道和传输队列。
开始之前
按照该任务中的步骤,构建使用IBM® MQ集群将客户端-服务器应用程序部署到集线器架构中中使用网关队列管理器创建两个重叠群集所示的重叠聚类。
关于本任务
该解决方案使用分布式排队将 Server App 应用程序的消息与网关队列管理器上的其他消息流量分开。 必须在 QM1 上定义集群远程队列定义,以将消息转移到不同的传输队列和不同的通道。 远程队列定义必须包含对仅针对 QM3上的 Q1 存储消息的特定传输队列的引用。 在 图 1中,集群队列别名 Q1A 由远程队列定义 Q1R进行补充,并添加了传输队列和发送方通道。
在此解决方案中,将使用公共 SYSTEM.CLUSTER.TRANSMIT.QUEUE返回任何应答消息。
此解决方案的优点是易于在同一集群中的同一队列管理器上分隔多个目标队列的流量。 该解决方案的缺点是无法在不同队列管理器上的 Q1 的多个副本之间使用集群工作负载均衡。 要克服此缺点,请参阅 添加集群传输队列以隔离从网关队列管理器发送的集群消息流量。 您还必须管理从一个传输队列到另一个传输队列的交换机。

过程
后续操作
通过使用网关队列管理器 QM1上的集群队列远程定义 Q1R 从 QM2 向 QM3 上的 Q1 发送消息来测试配置。
- 在
QM2上运行样本程序 amqsput 以放置消息。
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 - 运行样本程序 amqsget 以从
QM3上的Q1获取消息
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