- /*
- * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package javax.transaction;
-
- import java.lang.IllegalArgumentException;
- import java.lang.IllegalStateException;
- import java.lang.SecurityException;
-
- /**
- * The UserTransaction interface defines the methods that allow an
- * application to explicitly manage transaction boundaries.
- */
- public interface UserTransaction {
-
- /**
- * Create a new transaction and associate it with the current thread.
- *
- * @exception NotSupportedException Thrown if the thread is already
- * associated with a transaction and the Transaction Manager
- * implementation does not support nested transactions.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- *
- */
- void begin() throws NotSupportedException, SystemException;
-
- /**
- * Complete the transaction associated with the current thread. When this
- * method completes, the thread becomes associated with no transaction.
- *
- * @exception RollbackException Thrown to indicate that
- * the transaction has been rolled back rather than committed.
- *
- * @exception HeuristicMixedException Thrown to indicate that a heuristic
- * decision was made and that some relevant updates have been committed
- * while others have been rolled back.
- *
- * @exception HeuristicRollbackException Thrown to indicate that a
- * heuristic decision was made and that some relevant updates have been
- * rolled back.
- *
- * @exception SecurityException Thrown to indicate that the thread is
- * not allowed to commit the transaction.
- *
- * @exception IllegalStateException Thrown if the current thread is
- * not associated with a transaction.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- */
- void commit() throws RollbackException,
- HeuristicMixedException, HeuristicRollbackException, SecurityException,
- IllegalStateException, SystemException;
-
- /**
- * Roll back the transaction associated with the current thread. When this
- * method completes, the thread becomes associated with no transaction.
- *
- * @exception SecurityException Thrown to indicate that the thread is
- * not allowed to roll back the transaction.
- *
- * @exception IllegalStateException Thrown if the current thread is
- * not associated with a transaction.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- *
- */
- void rollback() throws IllegalStateException, SecurityException,
- SystemException;
-
- /**
- * Modify the transaction associated with the current thread such that
- * the only possible outcome of the transaction is to roll back the
- * transaction.
- *
- * @exception IllegalStateException Thrown if the current thread is
- * not associated with a transaction.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- *
- */
- void setRollbackOnly() throws IllegalStateException, SystemException;
-
- /**
- * Obtain the status of the transaction associated with the current thread.
- *
- * @return The transaction status. If no transaction is associated with
- * the current thread, this method returns the Status.NoTransaction
- * value.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- *
- */
- int getStatus() throws SystemException;
-
- /**
- * Modify the value of the timeout value that is associated with the
- * transactions started by the current thread with the begin method.
- *
- * <p> If an application has not called this method, the transaction
- * service uses some default value for the transaction timeout.
- *
- * @param seconds The value of the timeout in seconds. If the value
- * is zero, the transaction service restores the default value.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- *
- */
- void setTransactionTimeout(int seconds) throws SystemException;
- }