[rabbitmq-discuss] Passive queue declaration and channel closure

Steve Powell steve at rabbitmq.com
Tue Feb 21 13:23:02 GMT 2012


Simone, 

Replies in-line below..

I don't think this is likely to change in the near future, since it
would be disruptive to most clients that use this.

Steve Powell  (a happy bunny)
----------some more definitions from the SPD----------
vermin (v.) Treating the dachshund for roundworm.
chinchilla (n.) Cooling device for the lower jaw.
socialcast (n.) Someone to whom everyone is speaking but nobody likes.

On 16 Feb 2012, at 17:10, Busoli, Simone wrote:

> Without relying on the management plugin I think the only way to do that is to
> declare the queue as passive. At least with the .NET client and apparently the
> Java client too, when the queue does not exist, besides throwing an exception,
> the channel is closed as well. From the spec:
> 
> If set, the server will reply with Declare-Ok if the queue already exists with
> the same name, and raise an error if not. The client can use this to check
> whether a queue exists without modifying the server state.

The spec goes on to say:

  The client MAY ask the server to assert that a queue exists without creating
  the queue if not. If the queue does not exist, the server treats this as a
  failure. Error code: not-found

> There is no mention of channel closure, while the last sentence implies that
> using the passive bit is indeed a way for a client to check queue existence, so
> closing the channel when it doesn’t is a bit unexpected. That said, it’s not a
> big deal to recreate the channel in such cases, but I’d appreciate your opinion.
> Any chance this behavior can be changed in the client libraries?

This is the mention of channel-closure -- an 'error' raised on the channel will
close it.



More information about the rabbitmq-discuss mailing list