Class UserTransaction

java.lang.Object
com.arjuna.mw.wst11.UserTransaction

public abstract class UserTransaction extends Object
This is the interface that allows transactions to be started and terminated. The messaging layer converts the Commit, Rollback and Notify messages into calls on this. Importantly, a UserTransaction does not represent a specific transaction, but rather is responsible for providing access to an implicit per-thread transaction context; it is similar to the UserTransaction in the JTA specification. Therefore, all of the UserTransaction methods implicitly act on the current thread of control.
Since:
XTS 1.0.
Version:
$Id: UserTransaction.java,v 1.8.4.1 2005/11/22 10:36:05 kconner Exp $
Author:
Mark Little (mark.little@arjuna.com)
  • Constructor Details

    • UserTransaction

      public UserTransaction()
  • Method Details

    • getUserTransaction

      public static UserTransaction getUserTransaction()
      Get the user transaction.
      Returns:
      the user transaction.
    • setUserTransaction

      public static void setUserTransaction(UserTransaction userTransaction)
      Set the user transaction.
      Parameters:
      userTransaction - The user transaction.
    • getUserSubordinateTransaction

      public abstract UserTransaction getUserSubordinateTransaction()
      get the user subordinate transaction this is a UserTransaction whose begin method will create an interposed AT transaction
    • begin

      public abstract void begin() throws WrongStateException, SystemException
      Start a new transaction. If one is already associated with this thread then the WrongStateException will be thrown. Upon success, this operation associates the newly created transaction with the current thread.
      Throws:
      WrongStateException
      SystemException
    • begin

      public abstract void begin(int timeout) throws WrongStateException, SystemException
      Start a new transaction with the specified timeout as its lifetime. If one is already associated with this thread then the WrongStateException will be thrown.
      Throws:
      WrongStateException
      SystemException
    • commit

      The transaction is committed by the commit method. This will execute the PhaseZero, 2PC and OutcomeNotification protocols prior to returning. If there is no transaction associated with the invoking thread then WrongStateException is thrown. If the coordinator is not aware of the current transaction UnknownTransactionException is thrown. If the transaction ultimately rolls back then the TransactionRolledBackException is thrown. If any other error occurs a SystemException is thrown. When complete, this operation disassociates the transaction from the current thread such that it becomes associated with no transaction.
      Throws:
      TransactionRolledBackException
      UnknownTransactionException
      SecurityException
      SystemException
      WrongStateException
    • rollback

      The rollback operation will terminate the transaction and return normally if it succeeded, while throwing an appropriate exception if it didn't. If there is no transaction associated with the invoking thread then WrongStateException is thrown. If the coordinator is not aware of the current transaction UnknownTransactionException is thrown. If any other error occurs a SystemException is thrown. When complete, this operation disassociates the transaction from the current thread such that it becomes associated with no transaction.
      Throws:
      UnknownTransactionException
      SecurityException
      SystemException
      WrongStateException
    • transactionIdentifier

      public abstract String transactionIdentifier()
    • getTimeout

      public abstract int getTimeout()
      Returning timeout of the transaction as it was defined when it begun.