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 )