[rabbitmq-discuss] intermittent erl.exe crash
JD Conley
jdc at hive7.com
Thu Nov 5 20:46:14 GMT 2009
> One possible extension of RabbitMQ could allow queues to have a
> "automatically delete if idle for longer than X" setting. That would
> actually be quite easy to implement and is a natural extension of the
> existing exclusivity and auto-delete flags. Would that work for you or
> do you actually need an idle timeout for *bindings*? Those would be a
> lot harder to implement.
That's interesting, and would save my app code a lot of headache. My use
case is an idle timeout for inactive queues, which by definition should
remove associated bindings, right? Activity in my case would be defined as
having a consumer within X amount of time.
> Actually, not_found (404) is defined to be *soft* error, which means it
> only closes the channel, not the connection. So I suspect your
> application code is tripping over the channel error and causing the
> connection to close.
I'm using the .NET client, which is throwing an
OperationInterruptedException. Stack looks something like:
RabbitMQ.Client.Exceptions.OperationInterruptedException: The AMQP operation
was interrupted: AMQP close-reason, initiated by Peer, code=404,
text="NOT_FOUND - no queue
'youtopia.playerqueue.bc19a9767bc94cc18a20c7d8c4c9c1c6' in vhost '/'",
classId=50, methodId=50, cause=
at RabbitMQ.Client.Impl.SimpleBlockingRpcContinuation.GetReply()
at RabbitMQ.Client.Impl.ModelBase.ModelRpc(MethodBase method,
ContentHeaderBase header, Byte[] body)
at RabbitMQ.Client.Framing.Impl.v0_8.Model.QueueUnbind(String queue,
String exchange, String routingKey, IDictionary arguments)
[My code here]
I am not closing the connection unless IModel.IsOpen is false after any
operation. You say it closes the channel. So, would that be the IModel in
.NET client speak? How would I recover from this exception without
rebuilding everything from the connection on up?
-JD
More information about the rabbitmq-discuss
mailing list