Hello,
I'm trying to use MQTT protocol between ActiveMQ broker and JMS client.
Broker is started with MQTT transport: <transportConnector name="mqtt"
uri="mqtt://0.0.0.0:61616"/>
One queue and one topic are configured.
1. For testing I use HermesJMS tool. I've configured the tool with
MQTT jars (from /apache-activemq-5.6.0/lib/optional folder) and
brockerURL: mqtt://localhost:61616
When I try to open connection (just open an queue tab-panel) I receive
such exception:
javax.jms.JMSException: java.io.EOFException
at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1362)
at
org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1466)
at
org.apache.activemq.ActiveMQConnection.setClientID(ActiveMQConnection.java:396)
at
hermes.impl.jms.ConnectionManagerSupport.createConnection(ConnectionManagerSupport.java:174)
...
at hermes.browser.tasks.ThreadPool.run(ThreadPool.java:170)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.EOFException
at java.io.DataInputStream.readByte(DataInputStream.java:250)
at
org.apache.activemq.transport.mqtt.MQTTWireFormat.unmarshal(MQTTWireFormat.java:80)
at
org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:229)
at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:221)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204)
... 1 more
Broker logs:
WARN | Transport Connection to: tcp://127.0.0.1:2442 failed:
org.apache.activemq.transport.InactivityIOException: Channel was
inactive for too (>30000) long: tcp://127.0.0.1:2442
2. I've tried to test with my small test client based on ActiveMQ
without any success.
2.1. with mqtt://localhost:61616
Logs:
2012-05-24 12:22:03.029 [FINE]
org.apache.activemq.transport.mqtt.MQTTProtocolConverter
onActiveMQCommand
Do not know how to process ActiveMQ Command ConnectionInfo {commandId
= 1, responseRequired = true, connectionId =
ID:BK5N00025814-8614-1337854948615-2:1, clientId =
ID:BK5N00025814-8614-1337854948615-1:1, clientIp = null, userName =
null, password = *****, brokerPath = null, brokerMasterConnector =
false, manageable = true, clientMaster = true, faultTolerant = false,
failoverReconnect = false}
2.2. with failover://(mqtt://localhost:61616) it always tries to
reconnect after approx. 30 seconds.
3. When I tried to send messages from MQTT client
(mqtt-client-1.2-uber.jar) - everything was fine.
Question:
Are there any tricks in configuration of MQTT protocol for ActiveMQ
JMS clients? I did find any information on the documentation page.
Thanks in advance.
Best regards,
Dmytro Pishchukhin