【问题标题】:Artemis JMS management APIArtemis JMS 管理 API
【发布时间】:2020-12-20 06:53:23
【问题描述】:

我目前正在将 Spring Boot 2.x 应用程序从 ActiveMQ 5.x 迁移到 Artemis,但我遇到了 Artemis activemq.notificationsactivemq.management 的问题。

在 ActiveMQ 5 中,我使用了ActiveMQ.Advisory.Connection 主题来查看当前是否连接了具有特定 clientId 的客户端。连接到这个主题时,我首先收到了所有当前连接的客户端,然后通过ConnectionInfoRemovedInfo 通知客户端是离线还是在线。

很遗憾,Artemis 不支持这种行为。收听activemq.notifications 仅提供有关在收听该主题时创建的会话或关闭的会话的信息。

所以现在我需要在我的应用启动时同步连接的客户端。

我尝试使用 JMS 管理 API 访问 ActiveMQServerControl.listConnectionIDs(),但是 org.apache.activemq.artemis.core.server.management.impl.ManagementServiceImpl.getAttribute() 方法只允许访问以getis 开头的方法。

有没有其他方法可以获取所需信息(无需轮询)?

【问题讨论】:

    标签: jms activemq-artemis


    【解决方案1】:

    您可以执行操作而不是使用类似的方法获取属性

    org.apache.activemq.artemis.api.jms.management.JMSManagementHelper.putOperationInvocation(m, ResourceNames.BROKER, "listConnectionIDs");
    

    请注意,这可能行不通,我只是想给你看一个例子。

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 1970-01-01
      • 2017-10-15
      • 2020-10-20
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-22
      相关资源
      最近更新 更多