<html><head></head><body bgcolor="#FFFFFF"><div>See chapter 11 of RabbitMQ in Action for a nice flow chart covering how messages are handled. </div><div><br></div><div>The publisher confirm goes out when what you asked for (at least) has happened. For a persistent message this means persistence to disc in any queue and any mirrors thereof it was destined for. If circumstances are such that there was a ready, connected consumer chewing on an empty queue it's possible that the persistence will be skipped and the message directly delivered in which case the transmission of the confirm signifies this event. </div><div><br></div><div>Best regards,</div><div>Jerry</div><div><br>Sent from my iPad.</div><div><br>On Feb 5, 2013, at 11:58 AM, Mark Miller <<a href="mailto:developmentalmadness@gmail.com">developmentalmadness@gmail.com</a>> wrote:<br><br></div><div></div><blockquote type="cite"><div>Publisher confirms define handled sucessfully as follows:<div><ul style="margin: 10px 0px; padding: 0px; color: rgb(85, 85, 85); font-family: Verdana, sans-serif; line-height: 18px;"><li style="list-style-type: none; background-image: url(http://www.rabbitmq.com/img/li.gif); margin: 0px; padding: 3px 0px 2px 10px; background-position: 1px 9px; background-repeat: no-repeat no-repeat;">an un-routable mandatory or immediate message is confirmed right after the <em>basic.return</em>;</li><li style="list-style-type: none; background-image: url(http://www.rabbitmq.com/img/li.gif); margin: 0px; padding: 3px 0px 2px 10px; background-position: 1px 9px; background-repeat: no-repeat no-repeat;">otherwise, a transient message is confirmed the moment it is enqueued; and,</li><li style="list-style-type: none; background-image: url(http://www.rabbitmq.com/img/li.gif); margin: 0px; padding: 3px 0px 2px 10px; background-position: 1px 9px; background-repeat: no-repeat no-repeat;">a persistent message is confirmed when it is persisted to disk or when it is consumed on every queue.</li></ul><div><font color="#555555" face="Verdana, sans-serif"><span style="line-height: 17px;"><br></span></font></div></div><div><font color="#555555" face="Verdana, sans-serif"><span style="line-height: 17px;">So my question is about the 3rd point: Is this a "whichever comes first" situation? If the message is consumed and ack'd on all queues before it gets persisted to disk then the confirmation will be sent? Or if the message is persisted to disk hasn't been ack'd then the confirm will still be sent?</span></font></div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>rabbitmq-discuss mailing list</span><br><span><a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a></span><br><span><a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a></span><br></div></blockquote></body></html>