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]