Package com.arjuna.ats.jta.cdi
Class DelegatingTransactionManager
java.lang.Object
com.arjuna.ats.jta.cdi.DelegatingTransactionManager
- All Implemented Interfaces:
jakarta.transaction.TransactionManager
,Serializable
public abstract class DelegatingTransactionManager
extends Object
implements Serializable, jakarta.transaction.TransactionManager
An
abstract
TransactionManager
implementation that
delegates all method invocations to another TransactionManager
.- Author:
- Laird Nelson
- See Also:
-
Constructor Summary
ModifierConstructorDescriptionprotected
DelegatingTransactionManager
(jakarta.transaction.TransactionManager delegate) Creates a newDelegatingTransactionManager
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
begin()
Creates a new transaction and associates it with the current thread.void
commit()
Completes the transaction associated with the current thread.int
Returns the status of the transaction associated with the current thread.jakarta.transaction.Transaction
Returns theTransaction
object that represents the transaction context of the calling thread.void
resume
(jakarta.transaction.Transaction transaction) Resumes the transaction context association of the calling thread with the transaction represented by the suppliedTransaction
object.void
rollback()
Rolls back the transaction associated with the current thread.void
Irrevocably modifies the transaction associated with the current thread such that the only possible outcome is for it to roll back.void
setTransactionTimeout
(int seconds) Sets the timeout value that is associated with transactions started by the current thread with thebegin()
method.jakarta.transaction.Transaction
suspend()
Suspends the transaction currently associated with the calling thread and returns aTransaction
that represents the transaction context being suspended, ornull
if the calling thread is not associated with a transaction.
-
Constructor Details
-
DelegatingTransactionManager
protected DelegatingTransactionManager(jakarta.transaction.TransactionManager delegate) Creates a newDelegatingTransactionManager
.- Parameters:
delegate
- theTransactionManager
to which all method invocations will be delegated; may benull
, but all methods in this class will then throw aSystemException
-
-
Method Details
-
begin
public void begin() throws jakarta.transaction.NotSupportedException, jakarta.transaction.SystemExceptionCreates a new transaction and associates it with the current thread.- Specified by:
begin
in interfacejakarta.transaction.TransactionManager
- Throws:
jakarta.transaction.NotSupportedException
- if the thread is already associated with a transaction and thisTransactionManager
implementation does not support nested transactionsjakarta.transaction.SystemException
- if thisTransactionManager
encounters an unexpected error condition
-
commit
public void commit() throws jakarta.transaction.RollbackException, jakarta.transaction.HeuristicMixedException, jakarta.transaction.HeuristicRollbackException, jakarta.transaction.SystemExceptionCompletes the transaction associated with the current thread.When this method completes, the thread is no longer associated with a transaction.
- Specified by:
commit
in interfacejakarta.transaction.TransactionManager
- Throws:
jakarta.transaction.RollbackException
- if the transaction has been rolled back rather than committedjakarta.transaction.HeuristicMixedException
- if a heuristic decision was made and that some relevant updates have been committed while others have been rolled backjakarta.transaction.HeuristicRollbackException
- if a heuristic decision was made and all relevant updates have been rolled backSecurityException
- if the thread is not allowed to commit the transactionIllegalStateException
- if the current thread is not associated with a transactionjakarta.transaction.SystemException
- if thisTransactionManager
encounters an unexpected error condition
-
getStatus
public int getStatus() throws jakarta.transaction.SystemExceptionReturns the status of the transaction associated with the current thread.- Specified by:
getStatus
in interfacejakarta.transaction.TransactionManager
- Returns:
- the transaction status expressed as the value of one of
the
int
constants in theStatus
class; if no transaction is associated with the current thread, this method returnsStatus.STATUS_NO_TRANSACTION
- Throws:
jakarta.transaction.SystemException
- if thisTransactionManager
encounters an unexpected error condition- See Also:
-
getTransaction
public jakarta.transaction.Transaction getTransaction() throws jakarta.transaction.SystemExceptionReturns theTransaction
object that represents the transaction context of the calling thread.This method never returns
null
.- Specified by:
getTransaction
in interfacejakarta.transaction.TransactionManager
- Returns:
- the
Transaction
object representing the transaction associated with the calling thread; nevernull
- Throws:
jakarta.transaction.SystemException
- if thisTransactionManager
encounters an unexpected error condition
-
resume
public void resume(jakarta.transaction.Transaction transaction) throws jakarta.transaction.InvalidTransactionException, jakarta.transaction.SystemException Resumes the transaction context association of the calling thread with the transaction represented by the suppliedTransaction
object.When this method returns, the calling thread is associated with the transaction context specified.
- Specified by:
resume
in interfacejakarta.transaction.TransactionManager
- Parameters:
transaction
- theTransaction
representing the transaction to be resumed; must not benull
- Throws:
jakarta.transaction.InvalidTransactionException
- iftransaction
is invalidIllegalStateException
- if the thread is already associated with another transactionjakarta.transaction.SystemException
- if thisTransactionManager
encounters an unexpected error condition
-
rollback
public void rollback() throws jakarta.transaction.SystemExceptionRolls back the transaction associated with the current thread.When this method completes, the thread is no longer associated with a transaction.
- Specified by:
rollback
in interfacejakarta.transaction.TransactionManager
- Throws:
SecurityException
- if the thread is not allowed to roll back the transactionIllegalStateException
- if the current thread is not associated with a transactionjakarta.transaction.SystemException
- if thisTransactionManager
encounters an unexpected error condition
-
setRollbackOnly
public void setRollbackOnly() throws jakarta.transaction.SystemExceptionIrrevocably modifies the transaction associated with the current thread such that the only possible outcome is for it to roll back.- Specified by:
setRollbackOnly
in interfacejakarta.transaction.TransactionManager
- Throws:
IllegalStateException
- if the current thread is not associated with a transactionjakarta.transaction.SystemException
- if thisTransactionManager
encounters an unexpected error condition
-
setTransactionTimeout
public void setTransactionTimeout(int seconds) throws jakarta.transaction.SystemException Sets the timeout value that is associated with transactions started by the current thread with thebegin()
method.If an application has not called this method, the transaction service uses some default value for the transaction timeout.
- Specified by:
setTransactionTimeout
in interfacejakarta.transaction.TransactionManager
- Parameters:
seconds
- the timeout in seconds; if the value is zero, the transaction service restores the default value; if the value is negative aSystemException
is thrown- Throws:
jakarta.transaction.SystemException
- if thisTransactionManager
encounters an unexpected error condition or ifseconds
is less than zero
-
suspend
public jakarta.transaction.Transaction suspend() throws jakarta.transaction.SystemExceptionSuspends the transaction currently associated with the calling thread and returns aTransaction
that represents the transaction context being suspended, ornull
if the calling thread is not associated with a transaction.This method may return
null
.When this method returns, the calling thread is no longer associated with a transaction.
- Specified by:
suspend
in interfacejakarta.transaction.TransactionManager
- Returns:
- a
Transaction
representing the suspended transaction, ornull
- Throws:
jakarta.transaction.SystemException
- if thisTransactionManager
encounters an unexpected error condition
-