|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.transaction.support.AbstractPlatformTransactionManager
Abstract base class that allows for easy implementation of concrete platform transaction managers like JtaTransactionManager and HibernateTransactionManager.
Provides the following workflow handling:
Transaction synchronization is a generic mechanism for registering callbacks that get invoked at transaction completion time. This is mainly used internally by the data access support classes for JDBC, Hibernate, and JDO: They register resources that are opened within the transaction for closing at transaction completion time, allowing e.g. for reuse of the same Hibernate Session within the transaction. The same mechanism can also be used for custom synchronization efforts.
setTransactionSynchronization(int)
,
TransactionSynchronizationManager
,
JtaTransactionManager
,
HibernateTransactionManager
Field Summary | |
protected org.apache.commons.logging.Log |
logger
|
static int |
SYNCHRONIZATION_ALWAYS
Always activate transaction synchronization, even for "empty" transactions that result from PROPAGATION_SUPPORTS with no existing backend transaction. |
static int |
SYNCHRONIZATION_NEVER
Never active transaction synchronization. |
static int |
SYNCHRONIZATION_ON_ACTUAL_TRANSACTION
Activate transaction synchronization only for actual transactions, i.e. not for empty ones that result from PROPAGATION_SUPPORTS with no existing backend transaction. |
Constructor Summary | |
AbstractPlatformTransactionManager()
|
Method Summary | |
void |
commit(TransactionStatus status)
This implementation of commit handles participating in existing transactions and programmatic rollback requests. |
protected abstract void |
doBegin(java.lang.Object transaction,
TransactionDefinition definition)
Begin a new transaction with the given transaction definition. |
protected abstract void |
doCleanupAfterCompletion(java.lang.Object transaction)
Cleanup resources after transaction completion. |
protected abstract void |
doCommit(DefaultTransactionStatus status)
Perform an actual commit on the given transaction. |
protected abstract java.lang.Object |
doGetTransaction()
Return a current transaction object, i.e. a JTA UserTransaction. |
protected abstract void |
doResume(java.lang.Object transaction,
java.lang.Object suspendedResources)
Resume the resources of the current transaction. |
protected abstract void |
doRollback(DefaultTransactionStatus status)
Perform an actual rollback on the given transaction. |
protected abstract void |
doSetRollbackOnly(DefaultTransactionStatus status)
Set the given transaction rollback-only. |
protected abstract java.lang.Object |
doSuspend(java.lang.Object transaction)
Suspend the resources of the current transaction. |
TransactionStatus |
getTransaction(TransactionDefinition definition)
This implementation of getTransaction handles propagation behavior. |
int |
getTransactionSynchronization()
Return if this transaction manager should activate the thread-bound transaction synchronization support. |
protected abstract boolean |
isExistingTransaction(java.lang.Object transaction)
Check if the given transaction object indicates an existing, i.e. already begun, transaction. |
boolean |
isRollbackOnCommitFailure()
Return if a rollback should be performed on failure of the commit call. |
protected abstract boolean |
isRollbackOnly(java.lang.Object transaction)
Check if the given transaction object indicates a rollback-only, assumably from a nested transaction (else, the TransactionStatus of this transaction would have indicated rollback-only). |
void |
rollback(TransactionStatus status)
This implementation of rollback handles participating in existing transactions. |
void |
setRollbackOnCommitFailure(boolean rollbackOnCommitFailure)
Set if a rollback should be performed on failure of the commit call. |
void |
setTransactionSynchronization(int transactionSynchronization)
Set when this transaction manager should activate the thread-bound transaction synchronization support. |
void |
setTransactionSynchronizationName(java.lang.String constantName)
Set the transaction synchronization by the name of the corresponding constant in this class, e.g. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int SYNCHRONIZATION_ALWAYS
public static final int SYNCHRONIZATION_ON_ACTUAL_TRANSACTION
public static final int SYNCHRONIZATION_NEVER
protected final org.apache.commons.logging.Log logger
Constructor Detail |
public AbstractPlatformTransactionManager()
Method Detail |
public void setTransactionSynchronizationName(java.lang.String constantName)
constantName
- name of the constantSYNCHRONIZATION_ALWAYS
public void setTransactionSynchronization(int transactionSynchronization)
Note that transaction synchronization isn't supported for multiple concurrent transactions by different transaction managers. Only one transaction manager is allowed to activate it at any time.
SYNCHRONIZATION_ALWAYS
,
SYNCHRONIZATION_ON_ACTUAL_TRANSACTION
,
SYNCHRONIZATION_NEVER
,
TransactionSynchronizationManager
,
TransactionSynchronization
public int getTransactionSynchronization()
public void setRollbackOnCommitFailure(boolean rollbackOnCommitFailure)
public boolean isRollbackOnCommitFailure()
public final TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException
getTransaction
in interface PlatformTransactionManager
definition
- TransactionDefinition instance (can be null for defaults),
describing propagation behavior, isolation level, timeout etc.
TransactionException
- in case of lookup, creation, or system errorsdoGetTransaction()
,
isExistingTransaction(java.lang.Object)
,
doBegin(java.lang.Object, org.springframework.transaction.TransactionDefinition)
public final void commit(TransactionStatus status) throws TransactionException
commit
in interface PlatformTransactionManager
status
- object returned by the getTransaction() method.
TransactionException
- in case of commit or system errorsTransactionStatus.isRollbackOnly()
,
isRollbackOnly(java.lang.Object)
,
doCommit(org.springframework.transaction.support.DefaultTransactionStatus)
,
rollback(org.springframework.transaction.TransactionStatus)
public final void rollback(TransactionStatus status) throws TransactionException
rollback
in interface PlatformTransactionManager
status
- object returned by the getTransaction() method.
TransactionException
- in case of system errorsdoRollback(org.springframework.transaction.support.DefaultTransactionStatus)
,
doSetRollbackOnly(org.springframework.transaction.support.DefaultTransactionStatus)
protected abstract java.lang.Object doGetTransaction() throws TransactionException
CannotCreateTransactionException
- if transaction support is not available (e.g. no JTA UserTransaction retrievable from JNDI)
TransactionException
- in case of lookup or system errorsprotected abstract boolean isExistingTransaction(java.lang.Object transaction) throws TransactionException
transaction
- transaction object returned by doGetTransaction
TransactionException
- in case of system errorsprotected abstract void doBegin(java.lang.Object transaction, TransactionDefinition definition) throws TransactionException
transaction
- transaction object returned by doGetTransactiondefinition
- TransactionDefinition instance, describing
propagation behavior, isolation level, timeout etc.
TransactionException
- in case of creation or system errorsprotected abstract java.lang.Object doSuspend(java.lang.Object transaction) throws TransactionException
transaction
- transaction object returned by doGetTransaction
IllegalTransactionStateException
- if suspending is not supported by the transaction manager implementation
TransactionException
- in case of system errorsdoResume(java.lang.Object, java.lang.Object)
protected abstract void doResume(java.lang.Object transaction, java.lang.Object suspendedResources) throws TransactionException
transaction
- transaction object returned by doGetTransactionsuspendedResources
- the object that holds suspended resources,
as returned by doSuspend
IllegalTransactionStateException
- if resuming is not supported by the transaction manager implementation
TransactionException
- in case of system errorsdoSuspend(java.lang.Object)
protected abstract boolean isRollbackOnly(java.lang.Object transaction) throws TransactionException
transaction
- transaction object returned by doGetTransaction
TransactionException
- in case of creation or system errorsprotected abstract void doCommit(DefaultTransactionStatus status) throws TransactionException
status
- status representation of the transaction
TransactionException
- in case of commit or system errorsprotected abstract void doRollback(DefaultTransactionStatus status) throws TransactionException
status
- status representation of the transaction
TransactionException
- in case of system errorsprotected abstract void doSetRollbackOnly(DefaultTransactionStatus status) throws TransactionException
status
- status representation of the transaction
TransactionException
- in case of system errorsprotected abstract void doCleanupAfterCompletion(java.lang.Object transaction)
transaction
- transaction object returned by doGetTransaction
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |