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

Reply via email to