0

I'm using ActiveMQ to send files from an application to another and I've encountered this error when the consumer attempt to connect at ActiveMQ server.

Here is the connect method

public void connect()
    {
        connectionFactory = new ActiveMQConnectionFactory(
                "tcp://" + Configuration.getInstance().getServerAddress() + 
                ":61616?jms.blobTransferPolicy.defaultUploadUrl=" + "http://" +
                Configuration.getInstance().getServerAddress() + ":8161/fileserver/"
                        + "&connectionTimeout=0&soTimeout=0&soWriteTimeout=0"
                        + "&useInactivityMonitor=false");
        try 
        {
            connection = connectionFactory.createConnection();
            session = (ActiveMQSession) connection.createSession(false,
                                                    Session.AUTO_ACKNOWLEDGE);  
            destination = session.createQueue(Configuration.getInstance().getQueueName());
            consumer = session.createConsumer(destination);
            connection.start();
//          System.out.println("Consumer connected");
        } catch (JMSException e) {
            logger.error("PACS", e);
            e.printStackTrace();
        }
    }

This is exactly the same method I use to connect the producer to ActiveMQ and in that case it works perfectly, at the consumer side I have the following error:

javax.jms.JMSException: Unknown data type: 49
        at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSuppo
rt.java:54)
        at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnect
ion.java:1417)
        at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(Activ
eMQConnection.java:1522)
        at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnecti
on.java:328)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer.connect(CloudPacsConsum
er.java:74)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer.start(CloudPacsConsumer
.java:91)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer.run(CloudPacsConsumer.j
ava:135)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer.init(CloudPacsConsumer.
java:57)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer$1.call(CloudPacsConsume
r.java:39)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer$1.call(CloudPacsConsume
r.java:1)
        at javafx.concurrent.Task$TaskCallable.call(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Caused by: java.io.IOException: Unknown data type: 49
            at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireForma
    t.java:348)
            at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.
    java:268)
            at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTranspo
    rt.java:221)
            at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.jav
    a:213)
            at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:
    196)
            ... 1 more
    javax.jms.JMSException: Unknown data type: 49
            at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSuppo
    rt.java:54)
            at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnect
    ion.java:1417)
            at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(Activ
    eMQConnection.java:1522)
            at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnecti
    on.java:328)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer.connect(CloudPacsConsum
    er.java:74)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer.start(CloudPacsConsumer
    .java:91)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer.run(CloudPacsConsumer.j
    ava:135)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer.init(CloudPacsConsumer.
    java:57)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer$1.call(CloudPacsConsume
    r.java:39)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer$1.call(CloudPacsConsume
    r.java:1)
            at javafx.concurrent.Task$TaskCallable.call(Unknown Source)
            at java.util.concurrent.FutureTask.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
    Caused by:

 java.io.IOException: Unknown data type: 49
        at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireForma
t.java:348)
        at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.
java:268)
        at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTranspo
rt.java:221)
        at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.jav
a:213)
        at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:
196)
        ... 1 more

I have seek in the web for this error but I have not found the '49' value.

Anyone has encountered my situation or knows the cause/solution of this problem?

Thanks in advice and sorry for my not perfect English

Luca89
  • 99
  • 1
  • 4
  • 14

1 Answers1

0

double-check your ActiveMQ versions, it almost appears that the client is more recent than the server and when they're negotiating the protocol the client sends something not understood by the server and the exception is thrown

Scott Sosna
  • 1,443
  • 1
  • 8
  • 8