具有pub / sub WMQ的简单队列分发方案

时间:2012-08-29 15:58:02

标签: ibm-mq publish-subscribe

使用WebSphere MQ我想设置一个使用队列的主题,以便当应用程序或入站集群连接尝试将消息发送到“队列”时, 实际上使用一个主题,并将其发布到2个订阅,即 他们自己2个独立的队列。从本质上讲,我想从入境出发 按名称排队,但将其映射到2个单独的队列,如

AF_TO_DAAS是入站主题/今天是实际的 群集队列别名

=>转到AF_TO_APP1和
=>转到AF_TO_APP2

如果这些是我认为的分发列表中的队列,那就好了。

这两件事是本地队列。

我迷失在/ topic / node业务中,将其映射到订阅 和模型队列,什么不...

1 个答案:

答案 0 :(得分:4)

WebSphere MQ允许别名指向队列或主题。它还提供了一种在管理上创建持久订阅的方法。要完成此设置,请通过将现有别名替换为指向主题的别名来连接点。然后使用两个管理订阅将发布路由到两个(或更多)队列。

* First, define the topic
DEFINE TOPIC('AF_TO_DAAS.TOPIC') +
   TOPICSTR('AF_TO_DAAS') +
   REPLACE

* Now, create an alias over the topic.
* Sending apps think this is a queue.
DEFINE QALIAS('AF_TO_DAAS') +
   TARGET('AF_TO_DAAS.TOPIC') +
   TARGTYPE(TOPIC) +
   REPLACE

* Queues for the two recvr apps
DEFINE QLOCAL('AF_TO_APP1') +
   REPLACE

DEFINE QLOCAL('AF_TO_APP2') +
   REPLACE

* Now set up adminsitrative subs to route
* messages to the two app queues.
DEFINE SUB('AF_TO_DAAS.SUB') +
   TOPICSTR('') +
   TOPICOBJ('AF_TO_DAAS.TOPIC') +
   DEST('AF_TO_APP1') +
   PSPROP(NONE) +
   REPLACE

DEFINE SUB('AF_TO_APP2.SUB') +
   TOPICSTR('') +
   TOPICOBJ('AF_TO_DAAS.TOPIC') +
   DEST('AF_TO_APP2') +
   PSPROP(NONE) +
   REPLACE

因为这是一个发布,所以消息将包含一个包含主题字符串的属性Top。订阅条目中的PSPROP(NONE)会导致此操作被禁止,因此消息看起来像原始发布。

另请注意,出版物上的MQMD.MsgID不同,而不是原始邮件。