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?)

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:

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]

Reply via email to