gpt4 book ai didi

jms - 多个进程为单个订阅提供服务会导致 MQRC_SUBSCRIPTION_IN_USE

转载 作者:行者123 更新时间:2023-12-02 04:33:52 25 4
gpt4 key购买 nike

我有一个 TIBCO BusinessWorks 流程正在发布到 JMS 主题(我们将其称为 TOPIC.A),其中有一个流程正在订阅名为 SUBSCRIBE.A 的该主题。

我遇到的问题是第一个开始监听 SUBSCRIBE.A 的服务器很好地 Hook 。其他 3 台服务器运行完全相同的进程,收到错误“WebSphere MQ 调用失败,代码为 '2' ('MQCC_FAILED'),原因为 '2429' ('MQRC_SUBSCRIPTION_IN_USE')”

这对于企业软件来说是不合理的行为,而且我知道 WebsphereMQ、JMS 和 TIBCO Businessworks 都具有良好的扩展性,所以我一定错过了一些东西。我只希望每个事件处理一次,但由于故障转移原因和剪切量原因,单个盒子无法做到这一点。

我需要做什么才能让集群中的所有 4 台服务器为订阅 SUBSCRIBE.A 提供服务?

最佳答案

我同意这对于企业软件来说似乎不是合理的行为 - 但这个限制是由 JMS 规范施加的。 JMS 1.1 规范第 6.66.1 节规定“一次只能有一个 session 可以拥有用于特定持久订阅的 TopicSubscriber”。

也就是说,WebSphere MQ 确实提供了一个特定于供应商的选项,允许您执行您想要的操作:请参阅CLONESUPP 连接工厂属性。这记录在信息中心 CLONESUPP properties 中。页。

虽然它特定于 MQ,但如果您使用受管理对象指定这一点,您的代码将不需要使用任何特定于供应商的方法。

关于jms - 多个进程为单个订阅提供服务会导致 MQRC_SUBSCRIPTION_IN_USE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18853398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com