You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Esteve Fernandez <es...@sindominio.net> on 2008/10/06 22:30:57 UTC

Qpid M3 and 0.9

Hi all, I'm porting txAMQP [1] to Qpid M3 and noticed that there's a new 
method for sending frames (invoke_reliable) for AMQP 0.9 and wanted to use it 
as it will make asynchronous programming much easier. However, I cannot seem 
to get it working properly against the Java broker.

This is what I get when I run ./run-tests -d -v -s 0-9 
tests_0-9.example.ExampleTest

Closed: Method(name=close, id=50) 
(200, 'org.apache.qpid.framing.AMQFrameDecodingException: Unsupported frame 
type: 9 (Hexdump: empty)', 0, 0) content = None

So, is there a broker that supports frame_request (type 9) and frame_response 
(type 10), both defined in amqp-errata.0-9.xml? Will those methods become 
part of the upcoming AMQP 0.91 spec or is it a Qpid-only feature?

Cheers.

1 - https://launchpad.net/txamqp

Re: Qpid M3 and 0.9

Posted by Carl Trieloff <cc...@redhat.com>.
Esteve Fernandez wrote:
> Hi all, I'm porting txAMQP [1] to Qpid M3 and noticed that there's a new 
> method for sending frames (invoke_reliable) for AMQP 0.9 and wanted to use it 
> as it will make asynchronous programming much easier. However, I cannot seem 
> to get it working properly against the Java broker.
>
> This is what I get when I run ./run-tests -d -v -s 0-9 
> tests_0-9.example.ExampleTest
>
> Closed: Method(name=close, id=50) 
> (200, 'org.apache.qpid.framing.AMQFrameDecodingException: Unsupported frame 
> type: 9 (Hexdump: empty)', 0, 0) content = None
>
> So, is there a broker that supports frame_request (type 9) and frame_response 
> (type 10), both defined in amqp-errata.0-9.xml? Will those methods become 
> part of the upcoming AMQP 0.91 spec or is it a Qpid-only feature?
>
> Cheers.
>
> 1 - https://launchpad.net/txamqp
>   

I have been in 0-10 for a while now, so I might not be the best to 
comment, but the amqp-errata.0-9.xml
was a correction to the transfer message in the WIP in the Message 
class. The Message class is now the basis
for AMQP 0-10. 0-10 is pretty much all async by default.    (C++ broker 
around M1/2 supported it, but C++
has long ago moved onto 0-10, which supports async)

AMQP .91 is 0-9 SP1 and just to clean up some items on the old version 
(non WIP), thus you need to go
to a later spec version for this functionality. the SP will be of no use 
to you for the above.

Are you able to use the C++ broker and 0-10?  The C++, Java, Python, and 
.NET clients have 0-10 support
already.
Carl.

Qpid/AMQ patterns?

Posted by Shahbaz Chaudhary <sc...@genghisfund.com>.
I have always used JMS as a transport/distribution/organization protocol.  Several publishers send data on different topics, several subscribers subscribe to data on those topics--publishers and subscribers don't know each other.  It works well.

However, now I am responsible for larger and more complex systems.  For example, a transaction engine receives transactions and sends them on to the subscribers.  If a new subscriber joins, it needs 'sync' the subscriber (which may include keeping history or some sort of 'snapshot' data) and continue to provide it with updates.  In order to have a resilient system, I likely need to run at least two transaction engines (in case one fails), they need to be synced, they need to recover correctly.  Subscribers should continue to work without errors--as much as possible.

Parts of the system can ignore data (such as fast market data), parts of the system need to guarantee data is _never_ lost in a crash (orders, trades, etc.)

At least some of this is apparently already provided.  A large, concentrated and informed, effort such as qpid is bound to be better tested and better designed than efforts of a few people responsible for all kinds of irrelevant things.

Unfortunately, JMS doesn't get more than a few pages of basic description in most J2EE books (and all the other stuff is irrelevant to my work).  I'm sure AMQ has its own features, beyond JMS.

I've started looking at clustering solutions, such as GridGain, but I'm not sure they are designed for low latency requirements.

Can someone recommend the best way to maximize messaging software?  Books, articles, docs, etc.?

Thanks

Re: Qpid M3 and 0.9

Posted by Carl Trieloff <cc...@redhat.com>.
Esteve Fernandez wrote:
> On Tuesday 07 October 2008 12:07:32 Gordon Sim wrote:
>   
>> Those were part of the so called 0-9 'Work In Progress'; they are no
>> longer supported on any broker and should be removed from the python
>> client.
>>     
>
> So, to cut a long story short, the only reliable way to use AMQP in an 
> asynchronous fashion is to switch to 0.10, right?
>   

correct

> However, the Qpid C++ broker is the only one which supports 0.10, for the 
> moment. I would like to make txAMQP as interoperable as I can, but the top 
> goal now is to make it more reliable and, as such, asynchronicity at the 
> framing level is a must.

correct, you would need to use 0-10 & the C++ broker.

Carl.

Re: Qpid M3 and 0.9

Posted by Esteve Fernandez <es...@sindominio.net>.
On Tuesday 07 October 2008 12:07:32 Gordon Sim wrote:
> Those were part of the so called 0-9 'Work In Progress'; they are no
> longer supported on any broker and should be removed from the python
> client.

So, to cut a long story short, the only reliable way to use AMQP in an 
asynchronous fashion is to switch to 0.10, right?

However, the Qpid C++ broker is the only one which supports 0.10, for the 
moment. I would like to make txAMQP as interoperable as I can, but the top 
goal now is to make it more reliable and, as such, asynchronicity at the 
framing level is a must.

Cheers.

Re: Qpid M3 and 0.9

Posted by Gordon Sim <gs...@redhat.com>.
Esteve Fernandez wrote:
> Hi all, I'm porting txAMQP [1] to Qpid M3 and noticed that there's a new 
> method for sending frames (invoke_reliable) for AMQP 0.9 and wanted to use it 
> as it will make asynchronous programming much easier. However, I cannot seem 
> to get it working properly against the Java broker.
> 
> This is what I get when I run ./run-tests -d -v -s 0-9 
> tests_0-9.example.ExampleTest
> 
> Closed: Method(name=close, id=50) 
> (200, 'org.apache.qpid.framing.AMQFrameDecodingException: Unsupported frame 
> type: 9 (Hexdump: empty)', 0, 0) content = None
> 
> So, is there a broker that supports frame_request (type 9) and frame_response 
> (type 10), both defined in amqp-errata.0-9.xml? Will those methods become 
> part of the upcoming AMQP 0.91 spec or is it a Qpid-only feature?

Those were part of the so called 0-9 'Work In Progress'; they are no 
longer supported on any broker and should be removed from the python client.