使用 pub/sub WMQ 的简单队列分发场景

Joh*_*ann 2 publish-subscribe ibm-mq

使用 WebSphere MQ 我想设置一个使用队列的主题,以便当应用程序或入站集群连接尝试将消息放入 \xe2\x80\x9cqueue\xe2\x80\x9d 时,它实际上使用一个主题,并将其发布到 2 个订阅,\n它们本身就是 2 个独立的队列。本质上,我想按名称从入站队列进入,但将其映射到 2 个单独的队列,例如

\n\n

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

\n\n

=>转到 AF_TO_APP1 并
\n=>转到 AF_TO_APP2

\n\n

我想,有点像分发列表上的队列。

\n\n

这两件事是本地队列。

\n\n

我\xe2\x80\x99m 在将其映射到订阅\n和模型队列的 /topic/node 业务中迷失了方向,而不是\xe2\x80\xa6

\n

T.R*_*Rob 5

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
Run Code Online (Sandbox Code Playgroud)

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

另请注意,MQMD.MsgID出版物上的与原始消息上的不同。