<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    John,<br>
    <br>
    Please start a new thread when asking a new topic. It's very
    difficult to keep track of your posts otherwise, and it therefore
    takes us longer to help! Thanks.<br>
    <br>
    So on the subject of transactions...<br>
    <br>
    On 12/17/2012 07:15 PM, John Smith wrote:
    <blockquote
      cite="mid:1355771741.55347.YahooMailNeo@web165001.mail.bf1.yahoo.com"
      type="cite">
      <div style="color: rgb(0, 0, 0); background-color: rgb(255, 255,
        255); font-family: lucida console,sans-serif; font-size: 12pt;">
        <div><span>Am I correctly interpreting the following link:</span></div>
        <div><span></span>&nbsp;</div>
        <div><span><a moz-do-not-send="true"
              href="http://www.rabbitmq.com/semantics.html">http://www.rabbitmq.com/semantics.html</a></span></div>
        <div><span></span>&nbsp;</div>
        <div><span>I can have publish inside a transaction, but not
            receive inside a tx, <br>
          </span></div>
      </div>
    </blockquote>
    <br>
    You can of course receive messages inside a transaction, however
    that *receipt is not transactional* but rather the acknowledgement
    you send for it is. What this means in practise is that once
    delivered, a message arriving during a transaction will not be
    redelivered even if you roll back the transaction. On the broker, if
    you send back an ACK the message is normally then removed from the
    queue, and not before then, so that nack/reject work as expected. If
    you send an ACK during a transaction and subsequently roll back the
    transaction, the message will *not* be removed from the queue nor
    will it be delivered to you again! That is what the AMQP spec means
    when it distinguishes between atomic delivery (which isn't mandated
    or supported) and atomic acknowledgements (which are). As per the
    spec, if you're holding onto a message received during a transaction
    that was subsequently rolled back, it is valid to ACK that message
    at a later time in a subsequent transaction.<br>
    <br>
    <blockquote
      cite="mid:1355771741.55347.YahooMailNeo@web165001.mail.bf1.yahoo.com"
      type="cite">
      <div style="color: rgb(0, 0, 0); background-color: rgb(255, 255,
        255); font-family: lucida console,sans-serif; font-size: 12pt;">
        <div><span>and the transaction is not atomic ?</span></div>
        <div><span></span> <br>
        </div>
      </div>
    </blockquote>
    <br>
    Transactions in AMQP are atomic for a single queue, but RabbitMQ
    does not uphold the atomicity guarantee in the face of failure
    during the commit phase.<br>
    <br>
    <blockquote
      cite="mid:1355771741.55347.YahooMailNeo@web165001.mail.bf1.yahoo.com"
      type="cite">
      <div style="color:#000; background-color:#fff; font-family:lucida
        console, sans-serif;font-size:12pt">
        <div><span>Could someone please post a link to where I can view
            an example of a transaction in Rabbit ?</span></div>
        <div><span></span><br>
        </div>
      </div>
    </blockquote>
    <br>
    If you explain what you're specifically trying to achieve with
    transactions, then we can probably point you in the right direction.<br>
  </body>
</html>