简单的 MQ pub sub 定义主题和主题字符串

dor*_*thy 1 publish-subscribe ibm-mq

我正在使用 Websphere MQ 7.1。我想创建 pub/sub,并且需要定义一个主题,例如具有以下结构的“DEPARTMENT”

部门

   ---> SUBJECT1
   ---> SUBJECT2
        |===> Minor1
Run Code Online (Sandbox Code Playgroud)

例如我这样定义第一个

define TOPIC(DEPARTMENT) TOPICSTR('SUBJECT1')
Run Code Online (Sandbox Code Playgroud)

但是当我尝试定义 subject2 时遇到错误

define TOPIC(DEPARTMENT) TOPICSTR('SUBJECT2')
Run Code Online (Sandbox Code Playgroud)

它说“对象已经存在”。如何补救。谢谢

Sha*_*shi 5

TOPIC 对象是唯一的。因此,不能再次定义相同的主题对象。主题对象用于管理,主题字符串用于发布消息和订阅出版物。当您再次使用相同的DEPARTMENT对象名称来定义另一个主题时,您会收到错误。

你可以这样做:

define TOPIC(DEPSUB1) TOPICSTR('DEPARTMENT/SUBJECT1')
define TOPIC(DEPSUB2) TOPICSTR('DEPARTMENT/SUBJECT2')
define TOPIC(DEPSUB3) TOPICSTR('DEPARTMENT/SUBJECT2/Minor1')
Run Code Online (Sandbox Code Playgroud)

稍后,为了接收出版物,您可以使用以下示例主题字符串。

"#" -> Receive all publications
"DEPARTMENT/#" -> Every publication under 'DEPARTMENT' topic
"DEPARTMENT/+/Minor1" -> All publications on 'Minor1' irrespective of SUBJECTs.
Run Code Online (Sandbox Code Playgroud)