Net-AMQP

 view release on metacpan or  search on metacpan

spec/amqp0-10.xml  view on Meta::CPAN

      </doc>
      <doc>
        After the completion of the rollback, the client will still hold the messages which it has
        not yet accepted (including those for which accepts were previously issued within the
        transaction); i.e. the messages remain "acquired".  If the Client wishes to release those
        messages back to the Server, then appropriate message.release commands must be issued.
      </doc>

      <exception name="select-required" error-code="illegal-state">
        <doc>
          A client MUST NOT issue tx.rollback on a session that has not been selected for standard
          transactions with tx.select.
        </doc>
      </exception>

      <implement role="server" handle="MUST" />
    </command>

  </class>

  <!-- == Class: dtx =========================================================================== -->

  <class name="dtx" code="0x6" label="Demarcates dtx branches">
    <doc>
      This provides the X-Open XA distributed transaction protocol support. It allows a session
      to be selected for use with distributed transactions, the transactional boundaries for work on
      that session to be demarcated and allows the transaction manager to coordinate transaction
      outcomes.
    </doc>

    <doc type="grammar">
      dtx-demarcation = C:SELECT *demarcation
      demarcation     = C:START C:END
    </doc>

    <doc type="grammar">
      dtx-coordination    = *coordination
      coordination        = command
                            / outcome
                            / recovery
      command             = C:SET-TIMEOUT
                            / C:GET-TIMEOUT
      outcome             = one-phase-commit
                            / one-phase-rollback
                            / two-phase-commit
                            / two-phase-rollback
      one-phase-commit    = C:COMMIT
      one-phase-rollback  = C:ROLLBACK
      two-phase-commit    = C:PREPARE C:COMMIT
      two-phase-rollback  = C:PREPARE C:ROLLBACK
      recovery            = C:RECOVER *recovery-outcome
      recovery-outcome    = one-phase-commit
                            / one-phase-rollback
                            / C:FORGET

    </doc>

    <rule name="transactionality">
      <doc>
        Enabling XA transaction support on a session requires that the server MUST manage
        transactions demarcated by start-end blocks. That is to say that on this XA-enabled session,
        work undergone within transactional blocks is performed on behalf a transaction branch
        whereas work performed outside of transactional blocks is NOT transactional.
      </doc>
    </rule>

    <role name="server" implement="MAY" />
    <role name="client" implement="MAY" />

    <!-- XA domains -->

    <domain name="xa-status" type="uint16" label="XA return codes">
      <enum>
        <choice name="xa-ok" value="0">
          <doc>
            Normal execution completion (no error).
          </doc>
        </choice>

        <choice name="xa-rbrollback" value="1">
          <doc>
            The rollback was caused for an unspecified reason.
          </doc>
        </choice>

        <choice name="xa-rbtimeout" value="2">
          <doc>
            A transaction branch took too long.
          </doc>
        </choice>

        <choice name="xa-heurhaz" value="3">
          <doc>
            The transaction branch may have been heuristically completed.
          </doc>
        </choice>

        <choice name="xa-heurcom" value="4">
          <doc>
            The transaction branch has been heuristically committed.
          </doc>
        </choice>

        <choice name="xa-heurrb" value="5">
          <doc>
            The transaction branch has been heuristically rolled back.
          </doc>
        </choice>

        <choice name="xa-heurmix" value="6">
          <doc>
            The transaction branch has been heuristically committed and rolled back.
          </doc>
        </choice>

        <choice name="xa-rdonly" value="7">
          <doc>
            The transaction branch was read-only and has been committed.
          </doc>
        </choice>
      </enum>



( run in 0.550 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )