From ea9000143438c1a879341dca8faf749f670a3fca Mon Sep 17 00:00:00 2001 From: Arnaud Simon Date: Fri, 15 Jun 2007 16:43:11 +0000 Subject: includes the dtx part of AMQP 0.10 git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@547733 13f79535-47bb-0310-9956-ffa450edef68 --- specs/dtx.0-10-dtx.xml | 825 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 825 insertions(+) create mode 100644 specs/dtx.0-10-dtx.xml diff --git a/specs/dtx.0-10-dtx.xml b/specs/dtx.0-10-dtx.xml new file mode 100644 index 0000000000..42bd5f22e1 --- /dev/null +++ b/specs/dtx.0-10-dtx.xml @@ -0,0 +1,825 @@ + + + + + + + + + The rollback was caused by an unspecified reason. + + + A transaction branch took too long. + + + The transaction branch may have been heuristically completed. + + + The transaction branch has been heuristically committed. + + + The transaction branch has been heuristically rolled back. + + + The transaction branch has been heuristically committed and rolled back. + + + The transaction branch was read-only and has been committed. + + + Normal execution. + + + + + + An Xid uniquely identifies a transaction branch. + + + + Xid contains a format identifier, two length fields and a data field: + format_id long + gtrid_length octet + bqual_length octet + data + format_id is an implementation specific format identifier + the data field is a sequence of octets of at most 128 bytes containing the txn id and the branch id + gtrid_length field indicates how many bytes of this form the transaction id + bqual_length field indicates how many bytes of this form the branch id + The sum of the two lengths must equal the length of the data field + + + + + + + + + + + + + + + + + + + + + + + + This class is part of the X-Open XA distributed transaction protocol support. It allows a channel to be + selected for use with distributed transactions and the transactional boundaries for work on that channel + to be demarcated. + + + dtx-demarcation = C:SELECT S:SELECT-OK *demarcation + + demarcation = C:START S:START-OK C:END S:END-OK + + + + + + + + + + + + This method sets the channel to use distributed transactions. The client must use this method at least once on a channel before using XA demarcation operations. + + + + + + + + + + This method confirms to the client that the channel was successfully set to use distributed transactions. + + + + + + + + + This method is called when messages should be produced and consumed on behalf a transaction branch identified by xid. + + + + + + + + Specifies the xid of the transaction branch to be started. + + + + + + + Indicate that the start applies to joining a transaction previously seen. + + + + + + + Indicate that the start applies to resuming a suspended transaction branch specified. + + + + + + + + + + This method confirms to the client that the transaction branch is started or specify the error condition. + + + + + + xa-ok: Normal execution. + xa-rbrollback: The broker marked the transaction branch rollback-only for an unspecified reason. + + + + + + + + + + + This method is called when the work done on behalf a transaction branch finishes or needs to be suspended. + + + + + + + Specifies the xid of the transaction branch to be ended. + + + + + + + Indicates that the portion of work has failed otherwise the portion of work has completed successfully. + + + + + + + Indicates that the transaction branch is temporarily suspended in an incomplete state. + + + + + + + + + + + This method confirms to the client that the transaction branch is ended or specify the error condition. + + + + + + xa-ok: Normal execution. + xa-rbrollback: The broker marked the transaction branch rollback-only for an unspecified reason. + xa-rbtimeout: The work represented by this transaction branch took too long. + + + + + + + + + + + + This class is part of the X-Open XA distributed transaction protocol support. + It allows the transaction manager to coordinate transaction outcomes. + + + + + dtx-coordination = *coordination + + coordination = command + / outcome + / recovery + + command = C:SET-TIMEOUT S:SET-TIMEOUT-OK + / C:GET-TIMEOUT S:GET-TIMEOUT-OK + + outcome = one-phase-commit + / one-phase-rollback + / two-phase-commit + / two-phase-rollback + + one-phase-commit = C:COMMIT S:COMMIT-OK + + one-phase-rollback = C:ROLLBACK S:ROLLBACK-OK + + two-phase-commit = C:PREPARE S:PREPARE-OK C:COMMIT S:COMMIT-OK + + two-phase-rollback = C:PREPARE S:PREPARE-OK C:ROLLBACK S:ROLLBACK-OK + + recovery = C:RECOVER S:RECOVER-OK *recovery-outcome + + recovery-outcome = one-phase-commit + / one-phase-rollback + / C:FORGET S:FORGET-OK + + + + + + + + Access-tickets are propagated with XA demarcation methods with the aim of + restricting which users are allowed to control which transactions. + The server MAY restrict transaction coordination to a particular identity. + + + + + + + + + + + This method commits the work associated with xid. Any produced messages are made available and any consumed messages are discarded. + + + + + + + If an error occurs in committing the transaction branch then the server MUST raise a channel exception with reply code 541 (internal error) + + + + + + If the method is invoked in an improper context (see class grammar) then the server MUST raise a channel exception with reply code 503 (command invalid) + + + + + + Specifies the Xid of the transaction branch to be committed. + + + + + + If Xid is unknown (the transaction branch has not been started or has already been ended) then the server MUST raise a channel exception with reply code 404 (not found). + + + + + If this method is called when Xid is still associated with a channel then the server MUST raise a channel exception with reply code 503 (command invalid) + + + + + + + When set then one-phase commit optimization is used. + + + + + + + + + + This method confirms to the client that the transaction branch is committed or specify the error condition. + + + + + + xa-ok: Normal execution, + xa-heurhaz: Due to some failure, the work done on behalf of the specified transaction branch may have been heuristically completed. + xa-heurcom: Due to a heuristic decision, the work done on behalf of the specified transaction + branch was committed. + xa-heurrb: Due to a heuristic decision, the work done on behalf of the specified transaction + branch was rolled back. + xa-heurmix: Due to a heuristic decision, the work done on behalf of the specified transaction + branch was partially committed and partially rolled back. + xa-rbrollback: The broker marked the transaction branch rollback-only for an unspecified reason. + xa-rbtimeout: The work represented by this transaction branch took too long. + + + + + + + + + + + This method is called to forget about a heuristically completed transaction branch. + + + + + + + If an error occurs in forgetting the transaction branch then the server MUST raise a channel exception with reply code 541 (internal error) + + + + + + If the method is invoked in an improper context (see class grammar) then the server MUST raise a channel exception with reply code 503 (command invalid) + + + + + + Specifies the xid of the transaction branch to be forgotten. + + + + + + If Xid is unknown (the transaction branch has not been started or has already been ended) then the server MUST raise a channel exception with reply code 404 (not found). + + + + + If this method is called when Xid is still associated with a channel then the server MUST raise a channel exception with reply code 503 (command invalid) + + + + + + + + + + This method confirms to the client that the transaction branch is forgotten or specify the error condition. + + + + + + + + + This method obtains the current transaction timeout value in seconds. + If setTimeout was not used prior to invoking this method, the return value is the default timeout; otherwise, the value used in the previous setTimeout call is returned. + + + + + + + + Specifies the Xid of the transaction branch for getting the timeout. + + + + + + If Xid is unknown (the transaction branch has not been started or has already been ended) then the server MUST raise a channel exception with reply code 404 (not found). + + + + + + + If an error occurs in setting the transaction timeout then the server MUST raise a channel exception with reply code 541 (internal error) + + + + + + + + + This method returns the current transaction timeout value in seconds. + + + + + + The current transaction timeout value in seconds. + + + + + + + + + + This method prepares for commitment any message produced or consumed on behalf of xid. + + + + + If an error occurs in preparing the transaction branch then the server MUST raise a channel exception with reply code 541 (internal error). The specified Xid may or may not have been prepared. + + + + + + If the method is invoked in an improper context (see class grammar) then the server MUST raise a channel exception with reply code 503 (command invalid) + + + + + + Once this method successfully returns it is guaranteed that the transaction branch may be either + committed or rolled back regardless of failures. + + + + + + The knowledge of xid cannot be erased before commit or rollback complete the branch. + + + + + + + + + Specifies the Xid of the transaction branch that can be prepared. + + + + + + If Xid is unknown (the transaction branch has not been started or has already been ended) then the server MUST raise a channel exception with reply code 404 (not found). + + + + + If this method is called when Xid is still associated with a channel then the server MUST raise a channel exception with reply code 503 (command invalid) + + + + + + + + + + + This method confirms to the client that the transaction branch is prepared or specify the error condition. + + + + + + xa-ok: Normal execution. + xa-rdonly: The transaction branch was read-only and has been committed. + xa-rbrollback: The broker marked the transaction branch rollback-only for an unspecified reason. + xa-rbtimeout: The work represented by this transaction branch took too long. + + + + + + + + + + + This method is called to obtain a list of transaction branches that are in a + prepared or heuristically completed state. + + + + + If an error occurs in recovering then the server MUST raise a channel exception with reply code 541 (internal error) + + + + + + If this endscan is used in conjunction with startscan then a single call starts and then ends a scan. + + + + + + If none of endscan and startscan are set then a recovery scan must already be started otherwise the server MUST raise a channel exception with reply code 503 (command invalid) + + + + + + + + + + Indicates that recovery scan should start. + + + + If a recovery scan is already open, the effect is as if the recovery scan were ended and then restarted. + + + + + + + + Indicates that the recovery scan should end after returning the Xids. + + + + + + + + + + + Returns to the client a table with single item that is a sequence of transaction Xids that are in a prepared or heuristically completed state. + + + + + + + Xids that are in a prepared or heuristically completed state. + + + + The field table must contain a field called 'xids' of type sequence of longstrs representing the Xids that are in a prepared or heuristically completed state. + + + + + + + + + + + + This method rolls back the work associated with xid. Any produced messages are discarded + and any consumed messages are re-enqueued. + + + + + If an error occurs in rolling back the transaction branch then the server MUST raise a channel exception with reply code 541 (internal error) + + + + + + If the method is invoked in an improper context (see class grammar) then the server MUST raise a channel exception with reply code 503 (command invalid) + + + + + + + + + Specifies the Xid of the transaction branch that can be rolled back. + + + + + + If Xid is unknown (the transaction branch has not been started or has already been ended) then the server MUST raise a channel exception with reply code 404 (not found). + + + + + If this method is called when Xid is still associated with a channel then the server MUST raise a channel exception with reply code 503 (command invalid) + + + + + + + + + + This method confirms to the client that the transaction branch is rolled back or specify the error condition. + + + + + + xa-ok: Normal execution, + xa-heurhaz: Due to some failure, the work done on behalf of the specified transaction branch may have been heuristically completed. + xa-heurcom: Due to a heuristic decision, the work done on behalf of the specified transaction + branch was committed. + xa-heurrb: Due to a heuristic decision, the work done on behalf of the specified transaction + branch was rolled back. + xa-heurmix: Due to a heuristic decision, the work done on behalf of the specified transaction + branch was partially committed and partially rolled back. + xa-rbrollback: The broker marked the transaction branch rollback-only for an unspecified reason. + xa-rbtimeout: The work represented by this transaction branch took too long. + + + + + + + + + + + Sets the specified transaction branch timeout value in seconds. + + + + + If an error occurs in setting the transaction timeout then the server MUST raise a channel exception with reply code 541 (internal error) + + + + + + Once set, this timeout value is effective until this method is reinvoked with a different value. + + + + + + A value of zero resets the timeout value to the default value. + + + + + + + + + Specifies the Xid of the transaction branch for setting the timeout. + + + + + + If Xid is unknown (the transaction branch has not been started or has already been ended) then the server MUST raise a channel exception with reply code 404 (not found). + + + + + + + The transaction timeout value in seconds. + + + + + + + + + + This method confirms that the timeout has been set. + + + + + \ No newline at end of file -- cgit v1.2.1