<div dir="rtl"><br><div style="direction:ltr">Thanks on the reply.</div><div style="direction:ltr"><br></div><div style="direction:ltr">Can you please give me link to example of rabbitmq transaction?</div><br><div class="gmail_quote">
<div dir="ltr">2013/2/27 Emile Joubert <span dir="ltr"><<a href="mailto:emile@rabbitmq.com" target="_blank">emile@rabbitmq.com</a>></span></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Hi,<br>
<br>
On 27/02/13 13:25, Hadas wrote:<br>
> I try to use transaction in wcf by adding<br>
> "[OperationBehavior(TransactionScopeRequired = true)]" to functions in<br>
> my interface.<br>
> What I can see is that when an error happens the message return to the<br>
> queue, but only once. That means if an error occurs second time the<br>
> message is lost.<br>
><br>
> Do I miss something or what I need to change in order to retry till no<br>
> error occurs?<br>
<br>
<br>
I confess ignorance about how transactions work in WCF, so I'm not<br>
entirely sure whether they are designed to prevent message-loss in the<br>
way that you expect. My reading of RabbitMQInputChannel.Receive() in the<br>
RabbitMQ WCF binding is that messages are acknowledged immediately after<br>
being decoded and will therefore not be available from the broker after<br>
that point if the transaction needs to roll back.<br>
<br>
It is possible to deliver messages to clients with "at-least-once"<br>
guarantees by using the .net client library and making use of<br>
acknowledgements and durability. The 2nd tutorial contains a relevant<br>
discussion.<br>
<span><font color="#888888"><br>
<br>
<br>
<br>
-Emile<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</font></span></blockquote></div><br></div>