I'm trying to connect to the ActiveMQ Classic message broker on JBoss FUSE 7.4 (fuse-karaf-7.4.0.fuse-740028-redhat-00001). I found the following example.
I have downloaded and installed relevant features as instructed in the project. Also I have downloaded and installed ActiveMQ Classic 5.15.11 and created the incomingOrders Queue.
I have added the org.ops4j.connectionfactory-amq7.cfg configuration file in to FUSE_HOME/etc folder with my local user name and password as follows:
url = tcp://LAPTOP-E0A1RCAN:61616?maximumConnections=1000&wireFormat.maxFrameSize=10485760
name = activemq
type = artemis
user = admin
password = admin
After that when I install the application I'm getting following error.
java.lang.IllegalArgumentException: AMQ219032: Invalid type: 1
at org.apache.activemq.artemis.core.protocol.core.impl.PacketDecoder.decode(PacketDecoder.java:475) ~[248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at org.apache.activemq.artemis.core.protocol.ClientPacketDecoder.decode(ClientPacketDecoder.java:67) ~[248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at org.apache.activemq.artemis.core.protocol.ClientPacketDecoder.decode(ClientPacketDecoder.java:42) ~[248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:376) [248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingBufferHandler.bufferReceived(ClientSessionFactoryImpl.java:1191) [248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73) [248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) [239:io.netty.codec:4.1.34.Final-redhat-00001]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297) [239:io.netty.codec:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:677) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:612) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:529) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:491) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) [241:io.netty.common:4.1.34.Final-redhat-00001]
at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
2020-02-16 17:41:34,755 | ERROR | lient-netty-threads) | o.a.a.a.c.client | 248 - org.apache.activemq.artemis-jms-client-osgi - 2.7.0.redhat-00056 | AMQ214031: Failed to decode buffer, disconnect immediately.
java.lang.IllegalStateException: java.lang.IllegalArgumentException: AMQ219032: Invalid type: 1
at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:389) ~[248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingBufferHandler.bufferReceived(ClientSessionFactoryImpl.java:1191) [248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73) [248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) [239:io.netty.codec:4.1.34.Final-redhat-00001]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297) [239:io.netty.codec:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:677) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:612) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:529) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:491) [244:io.netty.transport:4.1.34.Final-redhat-00001]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) [241:io.netty.common:4.1.34.Final-redhat-00001]
at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
Caused by: java.lang.IllegalArgumentException: AMQ219032: Invalid type: 1
at org.apache.activemq.artemis.core.protocol.core.impl.PacketDecoder.decode(PacketDecoder.java:475) ~[248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at org.apache.activemq.artemis.core.protocol.ClientPacketDecoder.decode(ClientPacketDecoder.java:67) ~[248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at org.apache.activemq.artemis.core.protocol.ClientPacketDecoder.decode(ClientPacketDecoder.java:42) ~[248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:376) ~[248:org.apache.activemq.artemis-jms-client-osgi:2.7.0.redhat-00056]
... 21 more
In ActiveMQ log, I could see following warning .
2020-02-16 17:44:29,802 | WARN | Transport Connection to: tcp://127.0.0.1:51000 failed: java.io.IOException: Frame size of 1 GB larger than max allowed 100 MB | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///127.0.0.1:51000@61616
Did any one have similar issues connecting to ActiveMQ with FUSE 7.4 or 7.1+?
As instructions mentioned in that example its not compatible with JBossFUSE 7.4. In your case you have to install following features
<feature>camel-jms</feature>
<feature>camel-activemq</feature>
<feature>pax-jms-activemq</feature>
Then you have to define your ActiveMQ endpoint inside your project blueprint.xml. Make sure to details correctly in here.
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="brokerURL" value="tcp://localhost:61616"/>
</bean>
Then you can read or right in to Queues. Following line show how you can read queue "inbound.queue"
<from uri="activemq:queue:inbound.queue"/>
You can refer to following blog for more detail description about how to configure ActiveMQ in Fuse 7.4.
https://nirmalbalasooriya.blogspot.com/2020/02/external-active-mq-hibernate-with-jboss.html
The "Summary" from the linked example says:
This quickstart demonstrates how to use the camel-jms component to connect to an AMQ 7 broker and use JMS messaging between two Camel routes. [emphasis added]
AMQ 7 is based on ActiveMQ Artemis, not ActiveMQ Classic (which you are using). ActiveMQ Classic doesn't support the "core" protocol which the Artemis JMS client implementation speaks.
Therefore, you should either change the Camel configuration to use the ActiveMQ Classic OpenWire JMS client implementation or replace your ActiveMQ 5.15.11 instance with ActiveMQ Artemis.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With