ActiveMQ 3.8.3(CPP)priorityBackup的问题无法正常工作

时间:2014-11-24 21:05:27

标签: c++ activemq activemq-cpp

我对活跃的MQ有点新意,所以请耐心等待。

我正在尝试为我的一些Java和CPP应用程序利用ActiveMQ优先级备份功能。我在两个不同的服务器(本地和远程)上有两个代理,我希望我的应用程序具有以下行为。

  1. 始终在启动时连接到本地代理
  2. 如果本地经纪人关闭,请连接到远程
  3. 连接到远程时,如果本地恢复,我们将重新连接到本地。
  4. 通过简单地将priorityBackup添加到我的uri选项,我已经成功地在java应用程序上进行了测试 即    故障切换:(TCP://本地:61616,TCP://远程:61616)?随机=假安培; priorityBackup =真

    然而,在CPP方面,事情并不顺利。

    以下在CPP应用程序上运行良好(具有基本的工作故障转移功能 - 当本地发生故障时也跳转到远程)

    故障切换:(TCP://本地:61616,TCP://远程:61616)?随机=假

    但是使用priorityBackup更新uri选项似乎完全破坏了故障转移功能(我的应用程序永远不会故障转移到远程代理,它们只是在本地代理关闭时保持某种无代理/无状态状态)    故障切换:(TCP://本地:61616,TCP://远程:61616)?随机=假安培; priorityBackup =真

    这里有什么我想念的吗?我应该包含额外的uri选项吗?

    更新:传输连接器信息

    <transportConnectors>
                <transportConnector name="ClientOpenwire" uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=7000"/>
                <transportConnector name="Broker2BrokerOpenwire" uri="tcp://0.0.0.0:62627?wireFormat.maxInactivityDuration=5000"/>
                <transportConnector name="stompConnector" uri="stomp://0.0.0.0:62623"/>
    </transportConnectors>
    

1 个答案:

答案 0 :(得分:0)

backuppriorityBackup参数在库的Java和C ++实现中以完全不同的方式处理。 Java实现运行良好,但不幸的是C ++实现被破坏了。没有其他选项可以解决此问题。需要对库进行严重更改才能解决此问题。

我使用activemq-cpp-library-3.8.3和各种版本的代理(5.10.0,5.11.1)测试了这个问题。问题未在3.8.4版本中修复。