配置 Boomi JMS 连接器到 ActiveMQ Artemis
Configuring Boomi JMS connector to ActiveMQ Artemis
我一直在 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
然后我创建了一个Custom Library,将其设置为Connector 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
这给了我一个奇怪的错误:“执行过程中发生意外错误:java.lang.NoClassDefFoundError:org/jboss/logging/Logger”
这是否意味着我包含了一个我不需要的库,它需要 jboss 记录器,或者我真的需要 jboss 记录器库?
如有任何指导,我们将不胜感激。
这里有很多问题要讨论。我会依次拿一个。
...I'm having issues with the connections creating numerous...objects in the heap, which aren't associated with the actual messages, but rather the ActiveMQ.Advisory.TempQueue
.
您应该能够通过在您的客户正在使用的 broker.xml
中的 acceptor
上设置 supportAdvisory=false
来解决此问题。 OpenWire chapter in the ActiveMQ Artemis user manual.
中对此进行了讨论
I have the following libraries imported into the Atom...
您实际需要的只有 库是artemis-jms-client-all-2.14.0.jar
。顾名思义,它包含 all ActiveMQ Artemis 客户端代码以及所有依赖项(例如 Netty、JMS API classes、JBoss 日志框架等)。
In the connector I specified ActiveMQ, and the ConectionFactory org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
class org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
不是 JMS ConnectionFactory
实现。它是 JNDI 的 InitialContextFactory
实现。
This gives me a java dump, complaining that "Unable to create initial context" and "Invalid broker URL" My URL is a little fancy, but it works for the other ActiveMQ JMS connector.
您正在使用的 URL 适用于用于 ActiveMQ 5.x(您之前使用的)的 OpenWire JMS 客户端。但是,它对用于 ActiveMQ Artemis(您现在正在使用的)的核心 JMS 客户端无效。您可以改用这样的东西:
(tcp://[host]:61616,tcp://[host]:61616)?ha=true&initialConnectAttempts=2&reconnectAttempts=0&maxRetryInterval=1000
我一直在 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
然后我创建了一个Custom Library,将其设置为Connector 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
这给了我一个奇怪的错误:“执行过程中发生意外错误:java.lang.NoClassDefFoundError:org/jboss/logging/Logger”
这是否意味着我包含了一个我不需要的库,它需要 jboss 记录器,或者我真的需要 jboss 记录器库?
如有任何指导,我们将不胜感激。
这里有很多问题要讨论。我会依次拿一个。
...I'm having issues with the connections creating numerous...objects in the heap, which aren't associated with the actual messages, but rather the
ActiveMQ.Advisory.TempQueue
.
您应该能够通过在您的客户正在使用的 broker.xml
中的 acceptor
上设置 supportAdvisory=false
来解决此问题。 OpenWire chapter in the ActiveMQ Artemis user manual.
I have the following libraries imported into the Atom...
您实际需要的只有 库是artemis-jms-client-all-2.14.0.jar
。顾名思义,它包含 all ActiveMQ Artemis 客户端代码以及所有依赖项(例如 Netty、JMS API classes、JBoss 日志框架等)。
In the connector I specified ActiveMQ, and the ConectionFactory
org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
class org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
不是 JMS ConnectionFactory
实现。它是 JNDI 的 InitialContextFactory
实现。
This gives me a java dump, complaining that "Unable to create initial context" and "Invalid broker URL" My URL is a little fancy, but it works for the other ActiveMQ JMS connector.
您正在使用的 URL 适用于用于 ActiveMQ 5.x(您之前使用的)的 OpenWire JMS 客户端。但是,它对用于 ActiveMQ Artemis(您现在正在使用的)的核心 JMS 客户端无效。您可以改用这样的东西:
(tcp://[host]:61616,tcp://[host]:61616)?ha=true&initialConnectAttempts=2&reconnectAttempts=0&maxRetryInterval=1000