【发布时间】:2012-03-19 03:03:10
【问题描述】:
与往常一样,IBM 文档非常适合它告诉您的内容,但忽略了重要的细节。抱歉,如果这里已经回答了这个问题 - 不幸的是,搜索词大多是通用的或至少是模棱两可的,我已经浏览了几百个问题,但没有运气。
我有两台 (IBM i) 服务器,每台服务器都有一个 WMQ 7.0 队列管理器。我有两个通道在它们之间运行 - 每个方向一个。
我在“服务器 A”上定义了一个主题,其发布和订阅范围为“全部”,代理订阅行为为“强制”。
我在“服务器 B”上定义了一个订阅,范围为“全部”。
一切都已启动并正在运行,但是当我将消息放入服务器 A 上的主题时(使用 MQ 资源管理器),服务器 B 上什么也没有出现。
我已经阅读了完成这项工作所需的“代理订阅”,但我终生无法弄清楚这些是如何创建的。
任何帮助表示赞赏。我在几个小时内就走了这么远(以前从未使用过 pub/sub),只是为了克服这个障碍。
您必须在这两个队列管理器之间设置层次结构,以便发布流向 B 上的队列管理器。
您必须在这两个队列管理器之间设置层次结构,以便发布流向 B 上的队列管理器。
假设 A 上的队列管理器为父级,B 上的队列管理器为子级,您必须在 B 上的队列管理器的 RUNMQSC 提示符中发出“ALTER QMGR PARENT ()”。这将在两个队列管理器之间创建层次结构。在 B 上的队列管理器上创建订阅后,代理订阅将自动流向 A 上的队列管理器。假设 A 上的队列管理器为父级,B 上的队列管理器为子级,您必须发出“ALTER QMGR PARENT ()” B 上队列管理器的 RUNMQSC 提示符。这将在两个队列管理器之间创建层次结构。在 B 上的队列管理器上创建订阅后,代理订阅将自动流向 A 上的队列管理器。
编辑:关于我的配置的更多详细信息(对我来说更有意义的服务器名称)
在服务器 A7 上:
Queue manager A7.QUEUE.MANAGER
Sender channel A7.TO.A2 with transmission queue A7.TO.A2
Alias queue A2.QUEUE.MANAGER pointing to A7.TO.A2
Receiver channel A2.TO.A7
在服务器 A2 中:
Queue manager A2.QUEUE.MANAGER
Sender channel A2.TO.A7 with transmission queue A2.TO.A7
Alias queue A7.QUEUE.MANAGER pointing to A2.TO.A7
Receiver channel A7.TO.A2
I then issued ALTER QMGR PARENT('A7.QUEUE.MANAGER')
我在 A7 上有主题,在发出 ALTER(上图)后,我在 A2 上添加了对该主题的订阅。
display pubsub type(ALL)
3 : display pubsub type(ALL)
AMQ8723: Display pub/sub status details.
QMNAME(A2.QUEUE.MANAGER) TYPE(LOCAL)
display pubsub type(ALL)
1 : display pubsub type(ALL)
AMQ8723: Display pub/sub status details.
QMNAME(A7.QUEUE.MANAGER) TYPE(LOCAL)
【问题讨论】:
标签: proxy distributed ibm-mq publish-subscribe