【问题标题】:Configuring Boomi JMS connector to ActiveMQ Artemis将 Boomi JMS 连接器配置到 ActiveMQ Artemis
【发布时间】:2021-05-16 16:25:57
【问题描述】:

我一直在 Boomi 中使用 JMS 连接器来连接 ActiveMQ Artemis 2.14,但使用客户端库 activemq-all-5.15.11.jar 和工厂 org.apache.activemq.jndi.ActiveMQInitialContextFactory 这有效,除了我遇到问题在堆中创建大量 org.apache.activemq.artemis.core.server.impl.MessageReferenceImpl 对象的连接,这些对象与实际消息无关,而是与 ActiveMQ.Advisory.TempQueue 相关联。

所以我正在尝试使用 ActiveMQ Artemis 2.14 客户端设置 Boomi JMS 连接器。我将以下库导入 Atom:

  • activemq-core-5.4.1.jar
  • artemis-core-client-2.14.0.jar
  • artemis-jms-client-2.14.0.jar
  • artemis-jms-client-all-2.14.0.jar
  • fscontext-4.6-b01.jar
  • geronimo-j2ee-management_1.1_spec-1.0.1.jar

然后我创建了一个自定义库,将其设置为连接器 JMS,并添加上述库并部署到 Atom。在我指定 ActiveMQ 的连接器中,以及 ConectionFactory org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory

这给了我一个 java 转储,抱怨“无法创建初始上下文”和“无效的代理 URL” 我的 URL 有点花哨,但它适用于其他 ActiveMQ JMS 连接器。

failover:(tcp://[host]:61616,tcp://[host]:61616)?startupMaxReconnectAttempts=2&maxReconnectAttempts=0&maxReconnectDelay=1000

所以我尝试了一个简单的 URL,只是 tcp://[host]:61616 这给了我一个奇怪的错误:“Unexpected error execution process: java.lang.NoClassDefFoundError: org/jboss/logging/Logger”

这是否意味着我包含了一个我不需要的库,它需要 jboss 记录器,还是我实际上需要 jboss 记录器库?

对此的任何指导表示赞赏。

【问题讨论】:

    标签: java activemq-artemis boomi


    【解决方案1】:

    这里有很多问题要讨论。我会依次拿走每一个。

    ...我遇到了在堆中创建大量...对象的连接问题,这些对象与实际消息无关,而是ActiveMQ.Advisory.TempQueue

    您应该能够通过在您的客户正在使用的broker.xml 中的acceptor 上设置supportAdvisory=false 来解决此问题。这在OpenWire chapter in the ActiveMQ Artemis user manual 中进行了讨论。

    我将以下库导入 Atom...

    您真正需要的唯一库是artemis-jms-client-all-2.14.0.jar。顾名思义,它包含 所有 ActiveMQ Artemis 客户端代码以及所有依赖项(例如 Netty、JMS API 类、JBoss 日志框架等)。

    在我指定 ActiveMQ 的连接器中,以及 ConectionFactory org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory

    org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory不是 JMS ConnectionFactory 实现。这是 JNDI 的 InitialContextFactory 实现。

    这给了我一个 java 转储,抱怨“无法创建初始上下文”和“无效代理 URL”我的 URL 有点花哨,但它适用于其他 ActiveMQ JMS 连接器。

    您使用的 URL 适合用于 ActiveMQ 5.x(您以前使用过)的 OpenWire JMS 客户端。但是,它对于用于 ActiveMQ Artemis(您现在正在使用的)的核心 JMS 客户端无效。你可以改用这样的东西:

    (tcp://[host]:61616,tcp://[host]:61616)?ha=true&initialConnectAttempts=2&reconnectAttempts=0&maxRetryInterval=1000
    

    【讨论】:

      猜你喜欢
      • 2020-02-24
      • 1970-01-01
      • 2023-03-04
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      • 2017-01-17
      • 2015-02-03
      相关资源
      最近更新 更多