- /*
- * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package javax.transaction;
-
- import javax.transaction.xa.XAResource;
- import java.lang.IllegalStateException;
- import java.lang.SecurityException;
-
- /**
- * The Transaction interface allows operations to be performed against
- * the transaction in the target Transactioin object. A Transaction
- * object is created corresponding to each global transaction creation.
- * The Transaction object can be used for resource enlistment,
- * synchronization registration, transaction completion and status
- * query operations.
- */
-
- public interface Transaction {
-
- /**
- * Complete the transaction represented by this Transaction object
- *
- * @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
- */
- public void commit() throws RollbackException,
- HeuristicMixedException, HeuristicRollbackException,
- SecurityException, SystemException;
-
- /**
- * Delist the resource specified from the current transaction
- * associated with the calling thread.
- *
- * @param xaRes The XAResource object representing the resource to delist
- *
- * @param flag One of the values of TMSUCCESS, TMSUSPEND, or TMFAIL.
- *
- * @exception IllegalStateException Thrown if the transaction in the
- * target object is inactive.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- *
- */
- public boolean delistResource(XAResource xaRes, int flag)
- throws IllegalStateException, SystemException;
-
- /**
- * Enlist the resource specified with the current transaction
- * context of the calling thread
- *
- * @param xaRes The XAResource object representing the resource to delist
- *
- * @return <i>true</i> if the resource was enlisted successfully; otherwise
- * <i>false</i>.
- *
- * @exception RollbackException Thrown to indicate that
- * the transaction has been marked for rollback only.
- *
- * @exception IllegalStateException Thrown if the transaction in the
- * target object is in prepared state or the transaction is inactive.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- *
- */
- public boolean enlistResource(XAResource xaRes)
- throws RollbackException, 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
- *
- */
- public int getStatus() throws SystemException;
-
- /**
- * Register a synchronization object for the transaction currently
- * associated with the calling thread. The transction manager invokes
- * the beforeCompletion method prior to starting the transaction
- * commit process. After the transaction is completed, the transaction
- * manager invokes the afterCompletion method.
- *
- * @param sync The Synchronization object for the transaction associated
- * with the target object
- *
- * @exception RollbackException Thrown to indicate that
- * the transaction has been marked for rollback only.
- *
- * @exception IllegalStateException Thrown if the transaction in the
- * target object is in prepared state or the transaction is inactive.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- *
- */
- public void registerSynchronization(Synchronization sync)
- throws RollbackException, IllegalStateException,
- SystemException;
-
- /**
- * Rollback the transaction represented by this Transaction object.
- *
- * @exception IllegalStateException Thrown if the transaction in the
- * target object is in prepared state or the transaction is inactive.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- *
- */
- public void rollback() throws IllegalStateException, 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 any transaction.
- *
- * @exception SystemException Thrown if the transaction manager
- * encounters an unexpected error condition
- *
- */
- public void setRollbackOnly() throws IllegalStateException,
- SystemException;
-
- }