[rabbitmq-discuss] Message timeouts

Steve Powell steve at rabbitmq.com
Fri Dec 2 14:39:28 GMT 2011

Dear Alex,

Just to be precise about this: the 'standard' RpcServer uses a passed in queue
or creates its queue as follows:


which is equivalent to:

	queueDeclare("", false, true, true, null)

which creates a non-durable, exclusive, auto-delete queue, named by the broker.

If you want your queue to survive the connection, it mustn't be exclusive to the
connection that creates it.

In order to survive a server failure you would make it durable.

To re-use the same queue later (after upgrade?), you had better name it yourself
(and re-use the name each time).

If the queue should persist after the last consumer (RpcServer?) is cancelled
from the queue, then it should not be auto-delete.

Does this give you the flexibility you require?

I do not know  your situation exactly, but it looks as though you need a named
non-exclusive queue, at the very least.
If you expect each server instance to be solely responsible for the request
queue it serves, then a simple naming scheme will suffice, but you still have to
be careful to have at most one instance of that server running at any one time.

Of course, having more than one server processing requests from a queue is
alright, too; if you are happy with way requests are shared out.

Steve Powell
steve at rabbitmq.com
[wrk: +44-2380-111-528] [mob: +44-7815-838-558]

On 2 Dec 2011, at 12:44, Matthias Radestock wrote:
> On 02/12/11 12:36, Alex Grönholm wrote:
>> I want to keep my "rpc" queue alive even when the RPC server software is
>> being upgraded so that users will only see a delay in the responses (and
>> no lost requests).
> So just make sure the rpc queue stays around during the upgrade.
> Matthias.
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss

More information about the rabbitmq-discuss mailing list