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-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to