|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.transaction.support.AbstractPlatformTransactionManager
org.springframework.transaction.jta.JtaTransactionManager
org.springframework.transaction.jta.WebSphereUowTransactionManager
public class WebSphereUowTransactionManager
WebSphere-specific PlatformTransactionManager implementation that delegates
to a UOWManager instance, obtained from WebSphere's
JNDI environment. This allows Spring to leverage the full power of the WebSphere
transaction coordinator, including transaction suspension, in a manner that is
perfectly compliant with officially supported WebSphere API.
The CallbackPreferringPlatformTransactionManager interface
implemented by this class indicates that callers should preferably pass in
a TransactionCallback through the execute(org.springframework.transaction.TransactionDefinition, org.springframework.transaction.support.TransactionCallback method, which
will be handled through the callback-based WebSphere UOWManager API instead
of through standard JTA API (UserTransaction / TransactionManager). This avoids
the use of the non-public javax.transaction.TransactionManager
API on WebSphere, staying within supported WebSphere API boundaries.
This transaction manager implementation derives from Spring's standard
JtaTransactionManager, inheriting the capability to support programmatic
transaction demarcation via getTransaction / commit /
rollback calls through a JTA UserTransaction handle, for callers
that do not use the TransactionCallback-based execute(org.springframework.transaction.TransactionDefinition, org.springframework.transaction.support.TransactionCallback method. However,
transaction suspension is not supported in this getTransaction
style (unless you explicitly specify a JtaTransactionManager.setTransactionManager(javax.transaction.TransactionManager) reference,
despite the official WebSphere recommendations). Use the execute(org.springframework.transaction.TransactionDefinition, org.springframework.transaction.support.TransactionCallback style
for any code that might require transaction suspension.
This transaction manager is compatible with WebSphere 6.1.0.9 and above. The default JNDI location for the UOWManager is "java:comp/websphere/UOWManager". If the location happens to differ according to your WebSphere documentation, simply specify the actual location through this transaction manager's "uowManagerName" bean property.
setUowManager(com.ibm.wsspi.uow.UOWManager),
setUowManagerName(java.lang.String),
UOWManager,
Serialized Form| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager |
|---|
AbstractPlatformTransactionManager.SuspendedResourcesHolder |
| Field Summary | |
|---|---|
static String |
DEFAULT_UOW_MANAGER_NAME
Default JNDI location for the WebSphere UOWManager. |
| Fields inherited from class org.springframework.transaction.jta.JtaTransactionManager |
|---|
DEFAULT_TRANSACTION_SYNCHRONIZATION_REGISTRY_NAME, DEFAULT_USER_TRANSACTION_NAME, FALLBACK_TRANSACTION_MANAGER_NAMES |
| Fields inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager |
|---|
logger, SYNCHRONIZATION_ALWAYS, SYNCHRONIZATION_NEVER, SYNCHRONIZATION_ON_ACTUAL_TRANSACTION |
| Constructor Summary | |
|---|---|
WebSphereUowTransactionManager()
Create a new WebSphereUowTransactionManager. |
|
WebSphereUowTransactionManager(com.ibm.wsspi.uow.UOWManager uowManager)
Create a new WebSphereUowTransactionManager for the given UOWManager. |
|
| Method Summary | ||
|---|---|---|
void |
afterPropertiesSet()
Initialize the UserTransaction as well as the TransactionManager handle. |
|
protected void |
doRegisterAfterCompletionWithJtaTransaction(JtaTransactionObject txObject,
List<TransactionSynchronization> synchronizations)
Registers the synchronizations as interposed JTA Synchronization on the UOWManager. |
|
|
execute(TransactionDefinition definition,
TransactionCallback<T> callback)
Execute the action specified by the given callback object within a transaction. |
|
protected com.ibm.wsspi.uow.UOWManager |
lookupDefaultUowManager()
Obtain the WebSphere UOWManager from the default JNDI location "java:comp/websphere/UOWManager". |
|
protected com.ibm.wsspi.uow.UOWManager |
lookupUowManager(String uowManagerName)
Look up the WebSphere UOWManager in JNDI via the configured name. |
|
void |
setUowManager(com.ibm.wsspi.uow.UOWManager uowManager)
Set the WebSphere UOWManager to use as direct reference. |
|
void |
setUowManagerName(String uowManagerName)
Set the JNDI name of the WebSphere UOWManager. |
|
boolean |
supportsResourceAdapterManagedTransactions()
Returns true since WebSphere ResourceAdapters (as exposed in JNDI)
implicitly perform transaction enlistment if the MessageEndpointFactory's
isDeliveryTransacted method returns true. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.springframework.transaction.PlatformTransactionManager |
|---|
commit, getTransaction, rollback |
| Field Detail |
|---|
public static final String DEFAULT_UOW_MANAGER_NAME
setUowManagerName(java.lang.String),
Constant Field Values| Constructor Detail |
|---|
public WebSphereUowTransactionManager()
public WebSphereUowTransactionManager(com.ibm.wsspi.uow.UOWManager uowManager)
uowManager - the WebSphere UOWManager to use as direct reference| Method Detail |
|---|
public void setUowManager(com.ibm.wsspi.uow.UOWManager uowManager)
Typically just used for test setups; in a J2EE environment, the UOWManager will always be fetched from JNDI.
JtaTransactionManager.setUserTransactionName(java.lang.String)public void setUowManagerName(String uowManagerName)
JtaTransactionManager.DEFAULT_USER_TRANSACTION_NAME,
setUowManager(com.ibm.wsspi.uow.UOWManager)
public void afterPropertiesSet()
throws TransactionSystemException
JtaTransactionManager
afterPropertiesSet in interface InitializingBeanafterPropertiesSet in class JtaTransactionManagerTransactionSystemExceptionJtaTransactionManager.initUserTransactionAndTransactionManager()
protected com.ibm.wsspi.uow.UOWManager lookupUowManager(String uowManagerName)
throws TransactionSystemException
uowManagerName - the JNDI name of the UOWManager
TransactionSystemException - if the JNDI lookup failedJtaTransactionManager.setJndiTemplate(org.springframework.jndi.JndiTemplate),
setUowManagerName(java.lang.String)
protected com.ibm.wsspi.uow.UOWManager lookupDefaultUowManager()
throws TransactionSystemException
TransactionSystemException - if the JNDI lookup failedJtaTransactionManager.setJndiTemplate(org.springframework.jndi.JndiTemplate)
protected void doRegisterAfterCompletionWithJtaTransaction(JtaTransactionObject txObject,
List<TransactionSynchronization> synchronizations)
doRegisterAfterCompletionWithJtaTransaction in class JtaTransactionManagertxObject - the current transaction objectsynchronizations - List of TransactionSynchronization objectsJtaTransactionManager.getTransactionManager(),
Transaction.registerSynchronization(javax.transaction.Synchronization),
TransactionSynchronizationRegistry.registerInterposedSynchronization(javax.transaction.Synchronization)public boolean supportsResourceAdapterManagedTransactions()
true since WebSphere ResourceAdapters (as exposed in JNDI)
implicitly perform transaction enlistment if the MessageEndpointFactory's
isDeliveryTransacted method returns true.
In that case we'll simply skip the JtaTransactionManager.createTransaction(java.lang.String, int) call.
supportsResourceAdapterManagedTransactions in interface TransactionFactorysupportsResourceAdapterManagedTransactions in class JtaTransactionManagerMessageEndpointFactory.isDeliveryTransacted(java.lang.reflect.Method),
AbstractMessageEndpointFactory,
TransactionFactory.createTransaction(java.lang.String, int)
public <T> T execute(TransactionDefinition definition,
TransactionCallback<T> callback)
throws TransactionException
CallbackPreferringPlatformTransactionManagerAllows for returning a result object created within the transaction, that is, a domain object or a collection of domain objects. A RuntimeException thrown by the callback is treated as a fatal exception that enforces a rollback. Such an exception gets propagated to the caller of the template.
execute in interface CallbackPreferringPlatformTransactionManagerdefinition - the definition for the transaction to wrap the callback incallback - the callback object that specifies the transactional action
null if none
TransactionException - in case of initialization, rollback, or system errors
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||