<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Simon,<div><br></div><div>Thanks. It helps to know what's expensive and what's not</div><div><br></div><div>The AMQP reference says about active declare:</div><div><br></div><div><i>If [passive] not set and the queue exists, the server MUST check that the
            existing queue has the same values for durable, exclusive, auto-delete,
            and arguments fields.  The server MUST respond with Declare-Ok if the
            requested queue matches these fields, and MUST raise a channel exception
            if not.</i></div><div><br></div><div>For that reason, I want to leave the active declare to producers so the consumers don't have to care whether the queue is durable, auto-delete and what not. A little bit less coupling. But I got what you said.</div><div><br></div><div>Now on the producer side, a dumb but easy way to make sure the queue gets recreated if missing is to always declare the queue and binding before every publish. It works but I'd imagine it is very inefficient, yeah? The consumer code is a bit more complicated with the use of QueueConsumer and Channel.basicConsumer. For a running consumer to use a recreated queue, do I have to instantiate a new QueueConsumer, and call Channel.basicConsumer again? I'm new to RabbitMQ and there seems to be a lot of options to go about this. Any pointers are much appreciated.</div><div><br></div><div>Yuesong</div><div><br><div><div>On Feb 18, 2011, at 11:40 AM, Simon MacMullen wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hi Yuesong.<br><br>On 18/02/11 16:31, Yuesong Wang wrote:<br><blockquote type="cite">What I really want to do is for both the producers and consumers to<br></blockquote><blockquote type="cite">automatically recover from a queue gone missing<br></blockquote><br>In that case both producers and consumers should declare the queue actively. Declaring a queue that already exists is not a problem, and the costs associated with doing so are low.<br><br>Cheers, Simon<br><br>-- <br>Simon MacMullen<br>Staff Engineer, RabbitMQ<br>SpringSource, a division of VMware<br><br>_______________________________________________<br>rabbitmq-discuss mailing list<br><a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss<br></div></blockquote></div><br></div></body></html>