[rabbitmq-discuss] .Net Cilent/1.8.0: IModel.QueueDelete not working?

Matthias Radestock matthias at rabbitmq.com
Fri Nov 26 08:54:47 GMT 2010


Simon MacMullen wrote:
> On 26/11/2010 8:19AM, Ovidiu Deac wrote:
>> On Thu, Nov 25, 2010 at 1:11 PM, David Wragg<david at rabbitmq.com>  wrote:
>>> In AMQP, the broker signals channel-level errors as part of closing the
>>> channel.  So there is no way to reuse a channel after an error.  You
>>> will need to open a new channel for further operations.
>>
>> I see. Is this a bug or a feature?
> 
> That's an interesting question. Certainly it annoys a whole bunch of 
> people. But there are reasons.
> 
> [...]
> To come back to your use case - if you're writing automated tests and 
> need to clean up when you're finished, try declaring your exchanges 
> autodelete. They will then go when the last queue unbinds from them. And 
> then either declare queues autodelete - they'll go when the last 
> consumer disconnects, or exclusive - they'll go when the creating 
> connection goes. You shouldn't have to explicitly delete stuff at all.

Arguably a few of the error conditions AMQP defines shouldn't be errors 
at all. Case in point, given that resource declaration is an *assertion* 
and thus an idempotent operation, resource deletion should be too 
(though I guess the operation should then be called 'retract' ;)


Regards,

Matthias.


More information about the rabbitmq-discuss mailing list