qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gordon Sim <g...@redhat.com>
Subject Re: Queue and exchange with the same name
Date Tue, 17 Jul 2012 12:54:38 GMT
On 07/17/2012 03:51 AM, Sitapati das / Joshua J Wulf wrote:
> My apologies if this is me totally failing to grok how this works...
>
> A little more experimenting (this was done using the Fedora 16 packages):
>
> qpid-config add queue doppleganger
> qpid-config add exchange topic doppleganger
>
> (in either order of execution) creates a queue *and* an exchange, both with
> the name 'doppleganger'. Attempts to interact with them through addressing
> will resolve to the queue only, regardless of the order of creation (tested
> by using assert).
>
> I would expect the second call to fail with an error "Object already
> exists".

That would not be valid AMQP 0-10, where queues and exchanges are in 
separate namespaces.

> On the other hand:
>
> spout 'uniqueindividual; {create:always, node:{type:topic}}'
> spout 'uniqueindividual; {create:always, node:{type:queue}}'
>
> (in either order of execution) creates only one object (whichever one you
> put first). The second call will then route to the existing object.

This again is different from the c++ client, which would create an 
exchange in the first instance and a queue in the second. I think the 
c++ client has a more useful and consistent behaviour for cases where an 
exchange and queue may share the same name.

> That it doesn't create a second object with the same name seems more
> intuitive than the behavior of qpid-config. However, I half-expected that
> specifying a node type for create would imply assert if an object with that
> name already exists.

No, the create option is really a create-unless-exists.

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


Mime
View raw message