Package io.helidon.integrations.jta.cdi
Class DelegatingTransactionManager
- java.lang.Object
-
- io.helidon.integrations.jta.cdi.DelegatingTransactionManager
-
- All Implemented Interfaces:
TransactionManager
public abstract class DelegatingTransactionManager extends Object implements TransactionManager
AnabstractTransactionManagerimplementation that delegates all method invocations to anotherTransactionManager.Design Notes
This class is
publicfor convenience. It is extended by other non-publicinternal classes.- See Also:
TransactionManager
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedDelegatingTransactionManager(TransactionManager delegate)Creates a newDelegatingTransactionManager.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbegin()Creates a new transaction and associates it with the current thread.voidcommit()Completes the transaction associated with the current thread.intgetStatus()Returns the status of the transaction associated with the current thread.TransactiongetTransaction()Returns theTransactionobject that represents the transaction context of the calling thread.voidresume(Transaction transaction)Resumes the transaction context association of the calling thread with the transaction represented by the suppliedTransactionobject.voidrollback()Rolls back the transaction associated with the current thread.voidsetRollbackOnly()Irrevocably modifies the transaction associated with the current thread such that the only possible outcome is for it to roll back.voidsetTransactionTimeout(int seconds)Sets the timeout value that is associated with transactions started by the current thread with thebegin()method.Transactionsuspend()Suspends the transaction currently associated with the calling thread and returns aTransactionthat represents the transaction context being suspended, ornullif the calling thread is not associated with a transaction.
-
-
-
Constructor Detail
-
DelegatingTransactionManager
protected DelegatingTransactionManager(TransactionManager delegate)
Creates a newDelegatingTransactionManager.- Parameters:
delegate- theTransactionManagerto which all method invocations will be delegated; may benull, but then aSystemExceptionwill be thrown by every method in this class when invoked
-
-
Method Detail
-
begin
public void begin() throws NotSupportedException, SystemExceptionCreates a new transaction and associates it with the current thread.- Specified by:
beginin interfaceTransactionManager- Throws:
NotSupportedException- if the thread is already associated with a transaction and thisTransactionManagerimplementation does not support nested transactionsSystemException- if thisTransactionManagerencounters an unexpected error condition
-
commit
public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SystemExceptionCompletes the transaction associated with the current thread.When this method completes, the thread is no longer associated with a transaction.
- Specified by:
commitin interfaceTransactionManager- Throws:
RollbackException- if the transaction has been rolled back rather than committedHeuristicMixedException- if a heuristic decision was made and that some relevant updates have been committed while others have been rolled backHeuristicRollbackException- 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 transactionSystemException- if thisTransactionManagerencounters an unexpected error condition
-
getStatus
public int getStatus() throws SystemExceptionReturns the status of the transaction associated with the current thread.- Specified by:
getStatusin interfaceTransactionManager- Returns:
- the transaction status expressed as the value of one of
the
intconstants in theStatusclass; if no transaction is associated with the current thread, this method returnsStatus.STATUS_NO_TRANSACTION - Throws:
SystemException- if thisTransactionManagerencounters an unexpected error condition- See Also:
Status
-
getTransaction
public Transaction getTransaction() throws SystemException
Returns theTransactionobject that represents the transaction context of the calling thread.This method never returns
null.- Specified by:
getTransactionin interfaceTransactionManager- Returns:
- the
Transactionobject representing the transaction associated with the calling thread; nevernull - Throws:
SystemException- if thisTransactionManagerencounters an unexpected error condition
-
resume
public void resume(Transaction transaction) throws InvalidTransactionException, SystemException
Resumes the transaction context association of the calling thread with the transaction represented by the suppliedTransactionobject.When this method returns, the calling thread is associated with the transaction context specified.
- Specified by:
resumein interfaceTransactionManager- Parameters:
transaction- theTransactionrepresenting the transaction to be resumed; must not benull- Throws:
InvalidTransactionException- iftransactionis invalidIllegalStateException- if the thread is already associated with another transactionSystemException- if thisTransactionManagerencounters an unexpected error condition
-
rollback
public void rollback() throws SystemExceptionRolls back the transaction associated with the current thread.When this method completes, the thread is no longer associated with a transaction.
- Specified by:
rollbackin interfaceTransactionManager- Throws:
SecurityException- if the thread is not allowed to roll back the transactionIllegalStateException- if the current thread is not associated with a transactionSystemException- if thisTransactionManagerencounters an unexpected error condition
-
setRollbackOnly
public void setRollbackOnly() throws SystemExceptionIrrevocably modifies the transaction associated with the current thread such that the only possible outcome is for it to roll back.- Specified by:
setRollbackOnlyin interfaceTransactionManager- Throws:
IllegalStateException- if the current thread is not associated with a transactionSystemException- if thisTransactionManagerencounters an unexpected error condition
-
setTransactionTimeout
public void setTransactionTimeout(int seconds) throws SystemExceptionSets 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:
setTransactionTimeoutin interfaceTransactionManager- Parameters:
seconds- the timeout in seconds; if the value is zero, the transaction service restores the default value; if the value is negative aSystemExceptionis thrown- Throws:
SystemException- if thisTransactionManagerencounters an unexpected error condition or ifsecondsis less than zero
-
suspend
public Transaction suspend() throws SystemException
Suspends the transaction currently associated with the calling thread and returns aTransactionthat represents the transaction context being suspended, ornullif 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:
suspendin interfaceTransactionManager- Returns:
- a
Transactionrepresenting the suspended transaction, ornull - Throws:
SystemException- if thisTransactionManagerencounters an unexpected error condition
-
-