public class

SpringJtaSynchronizationAdapter

extends Object
implements Synchronization
java.lang.Object
   ↳ org.springframework.transaction.jta.SpringJtaSynchronizationAdapter

Class Overview

Adapter that implements the JTA javax.transaction.Synchronization interface delegating to an underlying Spring TransactionSynchronization.

Useful for synchronizing Spring resource management code with plain JTA / EJB CMT transactions, despite the original code being built for Spring transaction synchronization.

Summary

Fields
protected static final Log logger
Public Constructors
SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization)
Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.
SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization, UserTransaction jtaUserTransaction)
Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.
SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization, TransactionManager jtaTransactionManager)
Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.
Public Methods
void afterCompletion(int status)
JTA afterCompletion callback: invoked after commit/rollback.
void beforeCompletion()
JTA beforeCompletion callback: just invoked before commit.
[Expand]
Inherited Methods
From class java.lang.Object
From interface javax.transaction.Synchronization

Fields

protected static final Log logger

Public Constructors

public SpringJtaSynchronizationAdapter (TransactionSynchronization springSynchronization)

Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.

Parameters
springSynchronization the Spring TransactionSynchronization to delegate to

public SpringJtaSynchronizationAdapter (TransactionSynchronization springSynchronization, UserTransaction jtaUserTransaction)

Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.

Note that this adapter will never perform a rollback-only call on WebLogic, since WebLogic Server is known to automatically mark the transaction as rollback-only in case of a beforeCompletion exception. Hence, on WLS, this constructor is equivalent to the single-arg constructor.

Parameters
springSynchronization the Spring TransactionSynchronization to delegate to
jtaUserTransaction the JTA UserTransaction to use for rollback-only setting in case of an exception thrown in beforeCompletion (can be omitted if the JTA provider itself marks the transaction rollback-only in such a scenario, which is required by the JTA specification as of JTA 1.1).

public SpringJtaSynchronizationAdapter (TransactionSynchronization springSynchronization, TransactionManager jtaTransactionManager)

Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.

Note that this adapter will never perform a rollback-only call on WebLogic, since WebLogic Server is known to automatically mark the transaction as rollback-only in case of a beforeCompletion exception. Hence, on WLS, this constructor is equivalent to the single-arg constructor.

Parameters
springSynchronization the Spring TransactionSynchronization to delegate to
jtaTransactionManager the JTA TransactionManager to use for rollback-only setting in case of an exception thrown in beforeCompletion (can be omitted if the JTA provider itself marks the transaction rollback-only in such a scenario, which is required by the JTA specification as of JTA 1.1)

Public Methods

public void afterCompletion (int status)

JTA afterCompletion callback: invoked after commit/rollback.

Needs to invoke the Spring synchronization's beforeCompletion at this late stage in case of a rollback, since there is no corresponding callback with JTA.

public void beforeCompletion ()

JTA beforeCompletion callback: just invoked before commit.

In case of an exception, the JTA transaction will be marked as rollback-only.