1 Reply Latest reply on Jul 7, 2014 9:54 AM by Justin Bertram

    New HornetQ client version running against old HornetQ Server version

    Yair Ogen Expert

      Is it possible to run new hornetq code (e.g. 2.3.12) against an old hornetq server (e.g. 2.2.14)?

       

      I tried and it fails on the following. Is there any option this could work? Pretty critical if we want to take newer version as we can't update all hornetq clients so we need a mix and match solution - i.e. new producer can work with old consumers and vice versa.

       

      2014/07/07 11:16:47.935 [client] [Old I/O client worker ([id: 0x90058181, /10.56.179.170:62499 => chvm16/10.63.200.100:5900])]:   ERROR:  HQ214013: Failed to decode packet  
      [Exception: java.lang.IndexOutOfBoundsException: Readable byte limit exceeded: 67
        at org.jboss.netty.buffer.AbstractChannelBuffer.readByte(AbstractChannelBuffer.java:236)
        at org.hornetq.core.buffers.impl.ChannelBufferWrapper.readNullableString(ChannelBufferWrapper.java:54)
        at org.hornetq.core.protocol.core.impl.wireformat.ClusterTopologyChangeMessage_V2.decodeRest(ClusterTopologyChangeMessage_V2.java:140)
        at org.hornetq.core.protocol.core.impl.PacketImpl.decode(PacketImpl.java:266)
        at org.hornetq.core.protocol.ClientPacketDecoder.decode(ClientPacketDecoder.java:68)
        at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:485)
        at org.hornetq.core.client.impl.ClientSessionFactoryImpl$DelegatingBufferHandler.bufferReceived(ClientSessionFactoryImpl.java:1656)
        at org.hornetq.core.remoting.impl.netty.HornetQChannelHandler.messageReceived(HornetQChannelHandler.java:72)
        at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:281)
        at org.hornetq.core.remoting.impl.netty.HornetQFrameDecoder2.decode(HornetQFrameDecoder2.java:169)
        at org.hornetq.core.remoting.impl.netty.HornetQFrameDecoder2.messageReceived(HornetQFrameDecoder2.java:134)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
        at org.jboss.netty.channel.socket.oio.OioWorker.process(OioWorker.java:71)
        at org.jboss.netty.channel.socket.oio.AbstractOioWorker.run(AbstractOioWorker.java:73)
        at org.jboss.netty.channel.socket.oio.OioWorker.run(OioWorker.java:51)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at org.jboss.netty.util.VirtualExecutorService$ChildExecutorRunnable.run(VirtualExecutorService.java:175)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)