qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From CLIVE <cl...@ckjltd.co.uk>
Subject Message API - Real world usage issue
Date Thu, 06 Feb 2014 19:07:24 GMT

I have been using qpid as an AMQP messaging solution for several 
customers over the years and there are two (related) use cases that have 
always caused me a problem. This is because they have required me to cut 
and paste chunks of code from the broker in to a series of utility 
classes, far from ideal. It strikes me that if I am seeing these use 
cases then others must be as well.

The first use case requires the dynamic creation of Receivers, but 
before creating a new receiver, I would like to know if I already have a 
receiver that would match the required binding. This is not possible at 
the moment because the binding matching algorithms are hidden from 
public view; they are buried deep inside the Brokers Exchange 
Implementation code.

The second use case in question requires a client application to 
dynamically create multiple receivers for the same queue, but with 
slightly different binding keys bound to an exchange. When a message 
from an exchange gets put in the queue and delivered to the client (via 
a receiver) I need to route the message to the correct application level 
destination(s). To do this I need to undertake a matching operation 
between the routing key of the message and the binding key(s) of the 
created receivers; qpid does not deliver the message to the receiver 
with the most exact binding key match.  So basically the receivers, and 
their bindings, enable the required messages to get delivered to the 
required client, but I then need to undertake application level routing 
to route the message to one or more application level classes, based on 
message routing key/ receiver binding key matches.

Unfortunately in both cases the messaging API does not provide 
visibility of the bind matching algorithms and so I have to create 
several utility classes to support this functionality.

Would it be possible to create a Binding.h class in the messaging API to 
support matching of bindings from all the supported exchange types?


To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org

View raw message