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 Access-tickets are propagated with XA association methods with the aim of restricting which users are allowed to control which transactions. The server MAY restrict transaction association to a particular identity. Enabling XA transaction support on a channel implies that the server MUST manage transactions demarcated by start-end blocks. That is to say that on this XA-enabled channel, work undergone within transactional blocks is performed on behalf a transaction branch whereas work performed outside of transactional blocks is NOT transactional. 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. 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) If neither join nor resume is specified is specified and the transaction branch specified by xid has previously been seen then the server MUST raise a channel exception with reply code 530 (not allowed). If join and resume are specified then the server MUST raise a channel exception with reply code 503 (command invalid) Access-ticket granted by the server for a specific realm. Specifies the xid of the transaction branch to be started. If Xid is already known by the broker then the server MUST raise a channel exception with reply code 530 (not allowed). Indicate that the start applies to joining a transaction previously seen. If the broker does not support join the server MUST raise a channel exception with reply code 540 (not implemented). 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. 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) If suspend and fail are specified then the server MUST raise a channel exception with reply code 503 (command invalid) If an error occurs in ending the transaction branch then the server MUST raise a channel exception with reply code 541 (internal error) If neither fail nor suspend are specified then the portion of work has completed successfully Access-ticket granted by the server for a specific realm. Specifies the xid of the transaction branch to be ended. 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). Indicates that the portion of work has failed otherwise the portion of work has completed successfully. If fail is specified then the transaction should be marked as rollback-only. Indicates that the transaction branch is temporarily suspended in an incomplete state. The transaction context is in a suspended state and must be resumed via the start method with resume specified. 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) Access-ticket granted by the server for a specific realm. 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) Access-ticket granted by the server for a specific realm. 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. Access-ticket granted by the server for a specific realm. 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) Access-ticket granted by the server for a specific realm. 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 of transaction Xids that are in a prepared or heuristically completed state. table containing transaction 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) Access-ticket granted by the server for a specific realm. 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. Access-ticket granted by the server for a specific realm. 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. This is a utility class for querying and exchange about its bindings to queues. This method is used to request information on the bindings to a particular exchange. That information is conveyed in a query-ok method. A valid ticket should be provided. The name of the exchange for which binding information is being requested. If not specified explicitly the default exchange is implied. If populated then determine whether the given queue is bound to the exchange. If populated defines the routing key of the binding of interest, if not populated the request will ignore the routing key on bindings when searching for a match. If populated defines the arguments of the binding of interest if not populated the request will ignore the arguments on bindings when searching for a match This method is used in response to a query and conveys information on the bindings to a particular exchange. If set, the exchange for which information was requested is not known. If set, the queue specified is not known. A bit which if set indicates that no binding was found from the specified exchange to the specified queue. A bit which if set indicates that no binding was found from the specified exchange with the specified routing key. A bit which if set indicates that no binding was found from the specified exchange with the specified arguments. This method is used to request information on a particular exchange. That information is conveyed by an query-ok method. A valid ticket should be provided. The name of the exchange for which information is requested. If not specified explicitly the default exchange is implied. This method is used in response to a query request and conveys information on a particular exchange. The type of the exchange. Will be empty if the exchange is not found. The durability of the exchange, i.e. if set the exchange is durable. Will not be set if the exchange is not found. If set, the exchange for which information was requested is not known. A set of properties of the exchange whose syntax and semantics depends on the server implementation. Will be empty if the exchange is not found. This class allows for efficiently communicating information about completion of processing. The low-water mark for executed command-ids. All ids below this mark have been executed; above this mark, there are gaps containing unexecuted command ids (i.e. discontinuous). By definition, the first id above this mark (if it exists) is an unexecuted command-id.