Hi Jesse, The Java Broker supports 0-8 out of the box. I'd suspect you are seeing differences in the Rabbit/Qpid implementations here.
I don't have a handle on the precise issue, but I'd think the field table is likely to be involved. We'll take a look as soon as we can and come back to you. Regards, Marnie On Fri, Apr 24, 2009 at 4:06 PM, Jesse W. Hathaway <[email protected]> wrote: > > Hi Jesse, > > > > Our Ruby clients are written in pure Ruby, the only C code is in the > > library for SASL integration. I have not ever used JRuby - did you try > > using our client with JRuby and run into problems? (Does anyone out > > there have experience with JRuby and our client?) > > I have not tried using them with JRuby, once I do get the bindings working > with Ruby MRI I will definitely test with JRuby and report back to the > list. > > > Make sure your client and server are using the same AMQP version. The > > Java server does 0-8, the same version that RabbitMQ uses. Our Ruby > > client uses 0-10, the same version that the C++ based server uses. The > > version information for clients and servers is here: > > Do I have to make any configuration changes for the java broker to > support 0-8? > > thanks, Jesse > > > http://qpid.apache.org/getting-started.html > > > > I can't comment on tmm1-amqp. > > > > Jonathan > > > > Jesse W. Hathaway wrote: > >> Rather than the supplied QPID Ruby bindings I would prefer to use a > >> native Ruby implementation since then > >> the bindings would work in JRuby and be portable to > >> other AMQP implementations. > >> > >> However when trying [tmm1-amqp][1] with M4 and trunk I am seeing > >> the below errors. > >> > >> tmm1-amqp supports version 0-8 of the AMQP protocol, which based on > >> the QPID documentation the java broker should support the 0-8 spec. > >> > >> Are there any specific configuration changes which need to be made for > >> the broker to support 0-8 clients? > >> > >> tmm1-amqp is tested against RabbitMQ, so the problem could lie in a > difference > >> between RabbitMQ and QPID. > >> > >> Any help in tracking down the cause of the problem would be appreciated. > >> > >> thanks, Jesse > >> > >> ## on the client > >> > >> java.nio.BufferUnderflowException (Hexdump: CE) in inspect > >> java.lang.IllegalArgumentException (Hexdump: 00 00 00 0F 00 32 00 0A 00 > 00 03 74 77 6F 10 00 00 00 00 CE 01 00 03 00 00 00 1C 00 3C 00 14 00 00 03 > 74 77 6F 10 74 77 6F 2D 34 35 34 32 32 33 32 37 35 37 35 37 0A CE) in > inspect > >> java.lang.IllegalArgumentException (Hexdump: 00 00 00 0F 00 32 00 0A 00 > 00 03 74 77 6F 10 00 00 00 00 CE 01 00 03 00 00 00 1C 00 3C 00 14 00 00 03 > 74 77 6F 10 74 77 6F 2D 34 33 39 38 30 37 33 35 30 35 36 34 0A CE) in > inspect > >> java.lang.IllegalArgumentException (Hexdump: 00 00 00 0F 00 32 00 0A 00 > 00 03 74 77 6F 10 00 00 00 00 CE 01 00 03 00 00 00 1B 00 3C 00 14 00 00 03 > 74 77 6F 0F 74 77 6F 2D 38 35 31 31 38 39 31 36 34 31 34 0A CE) in inspect > >> > >> ## on the server M4 > >> > >> 2009-04-23 15:02:08,748 ERROR [pool-1-thread-4] > protocol.AMQPFastProtocolHandler (AMQPFastProtocolHandler.java:217) - > Exception caught in/127.0.0.1:44681(guest), closing session explictly: > org.apache.mina.filter.codec.ProtocolDecoderException: > java.lang.IllegalArgumentException (Hexdump: 00 00 00 0F 00 32 00 0A 00 00 > 03 74 77 6F 10 00 00 00 00 CE 01 00 03 00 00 00 1C 00 3C 00 14 00 00 03 74 > 77 6F 10 74 77 6F 2D 33 37 33 33 30 35 39 31 34 36 38 37 0A CE) > >> org.apache.mina.filter.codec.ProtocolDecoderException: > java.lang.IllegalArgumentException (Hexdump: 00 00 00 0F 00 32 00 0A 00 00 > 03 74 77 6F 10 00 00 00 00 CE 01 00 03 00 00 00 1C 00 3C 00 14 00 00 03 74 > 77 6F 10 74 77 6F 2D 33 37 33 33 30 35 39 31 34 36 38 37 0A CE) > >> at > org.apache.mina.filter.codec.QpidProtocolCodecFilter.messageReceived(QpidProtocolCodecFilter.java:158) > >> at > org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) > >> at > org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) > >> at > org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) > >> at org.apache.qpid.pool.Event$ReceivedEvent.process(Event.java:86) > >> at org.apache.qpid.pool.Job.processAll(Job.java:114) > >> at org.apache.qpid.pool.Job.run(Job.java:153) > >> at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) > >> at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) > >> at java.lang.Thread.run(Thread.java:595) > >> Caused by: java.lang.IllegalArgumentException > >> at java.nio.Buffer.limit(Buffer.java:249) > >> at > org.apache.mina.common.FixedSizeByteBufferAllocator$FixedSizeByteBuffer.limit(FixedSizeByteBufferAllocator.java:196) > >> at org.apache.qpid.framing.FieldTable.<init>(FieldTable.java:72) > >> at > org.apache.qpid.framing.FieldTableFactory.newFieldTable(FieldTableFactory.java:34) > >> at > org.apache.qpid.framing.EncodingUtils.readFieldTable(EncodingUtils.java:652) > >> at > org.apache.qpid.framing.amqp_8_0.AMQMethodBody_8_0.readFieldTable(AMQMethodBody_8_0.java:95) > >> at > org.apache.qpid.framing.amqp_8_0.BasicConsumeBodyImpl.<init>(BasicConsumeBodyImpl.java:81) > >> at > org.apache.qpid.framing.amqp_8_0.BasicConsumeBodyImpl$1.newInstance(BasicConsumeBodyImpl.java:47) > >> at > org.apache.qpid.framing.amqp_8_0.MethodRegistry_8_0.convertToBody(MethodRegistry_8_0.java:298) > >> at > org.apache.qpid.framing.AMQMethodBodyFactory.createBody(AMQMethodBodyFactory.java:43) > >> at org.apache.qpid.framing.AMQFrame.<init>(AMQFrame.java:42) > >> at > org.apache.qpid.framing.AMQDataBlockDecoder.createAndPopulateFrame(AMQDataBlockDecoder.java:104) > >> at > org.apache.qpid.framing.AMQDataBlockDecoder.decode(AMQDataBlockDecoder.java:118) > >> at > org.apache.qpid.codec.AMQDecoder.doDecodeDataBlock(AMQDecoder.java:133) > >> at org.apache.qpid.codec.AMQDecoder.doDecode(AMQDecoder.java:100) > >> at org.apache.qpid.codec.AMQDecoder.decode(AMQDecoder.java:208) > >> at > org.apache.mina.filter.codec.QpidProtocolCodecFilter.messageReceived(QpidProtocolCodecFilter.java:147) > >> ... 9 more > >> > >> ## on the server trunk > >> > >> 2009-04-23 15:00:12,631 ERROR [pool-1-thread-5] > protocol.AMQPFastProtocolHandler (AMQPFastProtocolHandler.java:217) - > Exception caught in/127.0.0.1:52805(guest), closing session explictly: > org.apache.mina.filter.codec.ProtocolDecoderException: > java.nio.BufferUnderflowException (Hexdump: CE) > >> org.apache.mina.filter.codec.ProtocolDecoderException: > java.nio.BufferUnderflowException (Hexdump: CE) > >> at > org.apache.mina.filter.codec.QpidProtocolCodecFilter.messageReceived(QpidProtocolCodecFilter.java:158) > >> at > org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) > >> at > org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) > >> at > org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) > >> at org.apache.qpid.pool.Event$ReceivedEvent.process(Event.java:86) > >> at org.apache.qpid.pool.Job.processAll(Job.java:114) > >> at org.apache.qpid.pool.Job.run(Job.java:153) > >> at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) > >> at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) > >> at java.lang.Thread.run(Thread.java:595) > >> Caused by: java.nio.BufferUnderflowException > >> at java.nio.Buffer.nextGetIndex(Buffer.java:404) > >> at java.nio.HeapByteBuffer.getInt(HeapByteBuffer.java:336) > >> at > org.apache.mina.common.FixedSizeByteBufferAllocator$FixedSizeByteBuffer.getInt(FixedSizeByteBufferAllocator.java:357) > >> at > org.apache.mina.common.ByteBuffer.getUnsignedInt(ByteBuffer.java:725) > >> at > org.apache.qpid.framing.EncodingUtils.readFieldTable(EncodingUtils.java:645) > >> at > org.apache.qpid.framing.amqp_8_0.AMQMethodBody_8_0.readFieldTable(AMQMethodBody_8_0.java:95) > >> at > org.apache.qpid.framing.amqp_8_0.BasicConsumeBodyImpl.<init>(BasicConsumeBodyImpl.java:81) > >> at > org.apache.qpid.framing.amqp_8_0.BasicConsumeBodyImpl$1.newInstance(BasicConsumeBodyImpl.java:47) > >> at > org.apache.qpid.framing.amqp_8_0.MethodRegistry_8_0.convertToBody(MethodRegistry_8_0.java:298) > >> at > org.apache.qpid.framing.AMQMethodBodyFactory.createBody(AMQMethodBodyFactory.java:43) > >> at org.apache.qpid.framing.AMQFrame.<init>(AMQFrame.java:42) > >> at > org.apache.qpid.framing.AMQDataBlockDecoder.createAndPopulateFrame(AMQDataBlockDecoder.java:104) > >> at > org.apache.qpid.framing.AMQDataBlockDecoder.decode(AMQDataBlockDecoder.java:118) > >> at > org.apache.qpid.codec.AMQDecoder.doDecodeDataBlock(AMQDecoder.java:133) > >> at org.apache.qpid.codec.AMQDecoder.doDecode(AMQDecoder.java:100) > >> at org.apache.qpid.codec.AMQDecoder.decode(AMQDecoder.java:208) > >> at > org.apache.mina.filter.codec.QpidProtocolCodecFilter.messageReceived(QpidProtocolCodecFilter.java:147) > >> ... 9 more > >> > >> [1]: http://github.com/tmm1/amqp/tree/master > >> > >> --------------------------------------------------------------------- > >> Apache Qpid - AMQP Messaging Implementation > >> Project: http://qpid.apache.org > >> Use/Interact: mailto:[email protected] > >> > >> > >> > > > > > > --------------------------------------------------------------------- > > Apache Qpid - AMQP Messaging Implementation > > Project: http://qpid.apache.org > > Use/Interact: mailto:[email protected] > > > > -- > Jesse W. Hathaway > Senior Systems Administrator > Chapdelaine & Co. > (w) 312-704-2000 > (c) 917-418-8423 > > --------------------------------------------------------------------- > Apache Qpid - AMQP Messaging Implementation > Project: http://qpid.apache.org > Use/Interact: mailto:[email protected] > >
