2

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

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

=> 转到 AF_TO_APP1 和
=> 转到 AF_TO_APP2

有点像我想这些是分发列表上的队列。

这两件事是本地队列。

我迷失在 /topic/node 业务中,将其映射到订阅和模型队列等等……

4

1 回答 1

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出版物上的 与原始消息上的不同。

于 2012-08-29T16:18:01.900 回答