<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 29/07/13 13:40, Matthias Radestock
wrote:<br>
</div>
<blockquote cite="mid:51F662A6.3060006@rabbitmq.com" type="cite">On
29/07/13 13:30, Tom Anderson wrote:
<br>
<blockquote type="cite">On 26/07/13 23:32, Matthias Radestock
wrote:
<br>
<blockquote type="cite">On 26/07/13 18:29, Tom Anderson wrote:
<br>
<blockquote type="cite">"The broker will confirm messages
once:
<br>
[...]
<br>
* a transient message has reached all its queues
<br>
[...]
<br>
So, if i send a persistent message (delivery mode = 2) to a
non-durable
<br>
exchange which routes to a non-durable queue, then i will
only get a
<br>
confirmation once the message has been consumed from that
queue, right?
<br>
</blockquote>
<br>
Wrong. The behaviour is described in the snippet you quoted
above,
<br>
i.e. the message gets confirmed once it has reached all the
queues it
<br>
was routed to.
<br>
</blockquote>
<br>
Okay. Just to clarify: the bit of the snippet i quoted that you
quoted
<br>
says "a transient message". I understood that as specifically
referring
<br>
to transient messages, not persistent ones, ie those sent with
delivery
<br>
mode 1 rather than 2. I was asking about persistent messages.
Are you
<br>
telling me that the behaviour for persistent messages is
actually the
<br>
same as that specified for transient messages?
<br>
</blockquote>
<br>
Messages persistence requires the combination of
<br>
1) delivery_mode = 2
<br>
2) routing to a durable queue
<br>
<br>
Condition #2 is not met in your case, so the message is not
persisted, i.e. it is treated as a transient message.<br>
</blockquote>
<br>
Aha. I didn't realise, that, thanks.<br>
<br>
What i'm looking for is a way to get some sort of feedback at the
sender when a message has been acknowledged by the consumer. Given
that transient messages are confirmed as soon as the message has
reached the queue, and persistent messages are confirmed as soon as
they are written to disk, am i right in concluding that there is no
way to do this with confirms? Is there any other mechanism in
RabbitMQ that might let me do this?<br>
<br>
My real goal here is to write a test for an application of ours, to
assert that it is only acknowledging messages after it has
successfully processed them, and not immediately on receipt. If
anyone has any thoughts on how i might be able to do that, i would
be very excited to hear them!<br>
<br>
Thanks,<br>
tom<br>
<br>
<div class="moz-signature">-- <br>
<p>Tom Anderson | Developer | +44 20 7826 4312 | <a
href="http://timgroup.com/">timgroup.com</a></p>
<div style="color:DarkGrey; font-size: small;">
<p>STATEMENT OF CONFIDENTIALITY: The information contained in
this electronic message and any attachments to this message
are intended for the exclusive use of the addressee(s) and may
contain confidential or privileged information. If you are not
the intended recipient, please notify Tom Anderson at TIM
Group at <a class="moz-txt-link-abbreviated" href="mailto:tom.anderson@timgroup.com">tom.anderson@timgroup.com</a> and destroy all copies of
this message and any attachments.</p>
<p>TIM Group is the trading name for YouDevise Limited.
YouDevise Limited is registered in England, No. 3331176.
Registered office: 3 Copthall Avenue, London, EC2R 7BH.</p>
</div>
</div>
</body>
</html>