WebLogicJtaTransactionManager
since Oracle end-of-lifed OC4J in favor of WebLogic@Deprecated public class OC4JJtaTransactionManager extends JtaTransactionManager
JtaTransactionManager variant for Oracle OC4J (10.1.3 and higher).
Supports the full power of Spring's transaction definitions on OC4J's
transaction coordinator, beyond standard JTA: transaction names
and per-transaction isolation levels.
Uses OC4J's special begin(name) method to start a JTA transaction,
in orderto make Spring-driven transactions visible in OC4J's transaction
monitor. In case of Spring's declarative transactions, the exposed name will
(by default) be the fully-qualified class name + "." + method name.
Supports a per-transaction isolation level through OC4J's corresponding
OC4JTransaction.setTransactionIsolation(int) method. This will
apply the specified isolation level (e.g. ISOLATION_SERIALIZABLE) to all
JDBC Connections that participate in the given transaction.
Automatically detects the available OC4J server version and adapts accordingly. Supports the "com.evermind.server" package in OC4J 10.1.3.2 as well as the "oracle.j2ee.transaction" package in later OC4J versions.
By default, the JTA UserTransaction and TransactionManager handles are
fetched directly from OC4J's TransactionUtility in 10.1.3.2+.
This can be overridden by specifying "userTransaction"/"userTransactionName"
and "transactionManager"/"transactionManagerName", passing in existing handles
or specifying corresponding JNDI locations to look up.
Thanks to Oracle for donating the original version of this extended OC4J integration code to the Spring project!
TransactionDefinition.getName(),
TransactionDefinition.getIsolationLevel(),
oracle.j2ee.transaction.OC4JTransactionManager#begin(String),
oracle.j2ee.transaction.OC4JTransaction#setTransactionIsolation,
oracle.j2ee.transaction.TransactionUtility,
Serialized FormAbstractPlatformTransactionManager.SuspendedResourcesHolder| Modifier and Type | Field and Description |
|---|---|
private java.lang.reflect.Method |
beginWithNameMethod
Deprecated.
|
private static java.lang.String |
FALLBACK_TRANSACTION_CLASS_NAME
Deprecated.
|
private static java.lang.String |
FALLBACK_TRANSACTION_MANAGER_CLASS_NAME
Deprecated.
|
private java.lang.reflect.Method |
setTransactionIsolationMethod
Deprecated.
|
private static java.lang.String |
TRANSACTION_CLASS_NAME
Deprecated.
|
private static java.lang.String |
TRANSACTION_MANAGER_CLASS_NAME
Deprecated.
|
private static java.lang.String |
TRANSACTION_UTILITY_CLASS_NAME
Deprecated.
|
DEFAULT_TRANSACTION_SYNCHRONIZATION_REGISTRY_NAME, DEFAULT_USER_TRANSACTION_NAME, FALLBACK_TRANSACTION_MANAGER_NAMESlogger, SYNCHRONIZATION_ALWAYS, SYNCHRONIZATION_NEVER, SYNCHRONIZATION_ON_ACTUAL_TRANSACTION| Constructor and Description |
|---|
OC4JJtaTransactionManager()
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet()
Deprecated.
Initialize the UserTransaction as well as the TransactionManager handle.
|
Transaction |
createTransaction(java.lang.String name,
int timeout)
Deprecated.
Create an active Transaction object based on the given name and timeout.
|
protected void |
doJtaBegin(JtaTransactionObject txObject,
TransactionDefinition definition)
Deprecated.
Perform a JTA begin on the JTA UserTransaction or TransactionManager.
|
private void |
loadOC4JTransactionClasses()
Deprecated.
|
protected UserTransaction |
retrieveUserTransaction()
Deprecated.
Allows subclasses to retrieve the JTA UserTransaction in a vendor-specific manner.
|
applyIsolationLevel, applyTimeout, buildUserTransaction, checkUserTransactionAndTransactionManager, doBegin, doCommit, doGetJtaTransaction, doGetTransaction, doJtaResume, doJtaSuspend, doRegisterAfterCompletionWithJtaTransaction, doResume, doRollback, doSetRollbackOnly, doSuspend, findTransactionManager, findTransactionSynchronizationRegistry, findUserTransaction, getJndiEnvironment, getJndiTemplate, getTransactionManager, getUserTransaction, initTransactionSynchronizationRegistry, initUserTransactionAndTransactionManager, isExistingTransaction, lookupTransactionManager, lookupTransactionSynchronizationRegistry, lookupUserTransaction, registerAfterCompletionWithExistingTransaction, retrieveTransactionManager, retrieveTransactionSynchronizationRegistry, setAllowCustomIsolationLevels, setAutodetectTransactionManager, setAutodetectUserTransaction, setCacheUserTransaction, setJndiEnvironment, setJndiTemplate, setTransactionManager, setTransactionManagerName, setTransactionSynchronizationRegistryName, setUserTransaction, setUserTransactionName, shouldCommitOnGlobalRollbackOnly, supportsResourceAdapterManagedTransactions, useSavepointForNestedTransactioncommit, determineTimeout, doCleanupAfterCompletion, getDefaultTimeout, getTransaction, getTransactionSynchronization, invokeAfterCompletion, isFailEarlyOnGlobalRollbackOnly, isGlobalRollbackOnParticipationFailure, isNestedTransactionAllowed, isRollbackOnCommitFailure, isValidateExistingTransaction, newTransactionStatus, prepareForCommit, prepareSynchronization, prepareTransactionStatus, resume, rollback, setDefaultTimeout, setFailEarlyOnGlobalRollbackOnly, setGlobalRollbackOnParticipationFailure, setNestedTransactionAllowed, setRollbackOnCommitFailure, setTransactionSynchronization, setTransactionSynchronizationName, setValidateExistingTransaction, suspend, triggerBeforeCommit, triggerBeforeCompletionprivate static final java.lang.String TRANSACTION_UTILITY_CLASS_NAME
private static final java.lang.String TRANSACTION_MANAGER_CLASS_NAME
private static final java.lang.String TRANSACTION_CLASS_NAME
private static final java.lang.String FALLBACK_TRANSACTION_MANAGER_CLASS_NAME
private static final java.lang.String FALLBACK_TRANSACTION_CLASS_NAME
private java.lang.reflect.Method beginWithNameMethod
private java.lang.reflect.Method setTransactionIsolationMethod
public void afterPropertiesSet()
throws TransactionSystemException
JtaTransactionManagerafterPropertiesSet in interface InitializingBeanafterPropertiesSet in class JtaTransactionManagerTransactionSystemExceptionJtaTransactionManager.initUserTransactionAndTransactionManager()protected UserTransaction retrieveUserTransaction()
throws TransactionSystemException
JtaTransactionManagerThe default implementation simply returns null.
retrieveUserTransaction in class JtaTransactionManagernull if none foundTransactionSystemException - in case of errorsJtaTransactionManager.setUserTransaction(UserTransaction),
JtaTransactionManager.setUserTransactionName(java.lang.String)private void loadOC4JTransactionClasses()
throws TransactionSystemException
TransactionSystemExceptionprotected void doJtaBegin(JtaTransactionObject txObject, TransactionDefinition definition) throws NotSupportedException, SystemException
JtaTransactionManagerThis implementation only supports standard JTA functionality: that is, no per-transaction isolation levels and no transaction names. Can be overridden in subclasses, for specific JTA implementations.
Calls applyIsolationLevel and applyTimeout
before invoking the UserTransaction's begin method.
doJtaBegin in class JtaTransactionManagertxObject - the JtaTransactionObject containing the UserTransactiondefinition - TransactionDefinition instance, describing propagation
behavior, isolation level, read-only flag, timeout, and transaction nameNotSupportedException - if thrown by JTA methodsSystemException - if thrown by JTA methodsJtaTransactionManager.getUserTransaction(),
JtaTransactionManager.getTransactionManager(),
JtaTransactionManager.applyIsolationLevel(org.springframework.transaction.jta.JtaTransactionObject, int),
JtaTransactionManager.applyTimeout(org.springframework.transaction.jta.JtaTransactionObject, int),
JtaTransactionObject.getUserTransaction(),
javax.transaction.UserTransaction#setTransactionTimeout,
javax.transaction.UserTransaction#beginpublic Transaction createTransaction(java.lang.String name,
int timeout)
throws NotSupportedException,
SystemException
TransactionFactorycreateTransaction in interface TransactionFactorycreateTransaction in class JtaTransactionManagername - the transaction name (may be null)timeout - the transaction timeout (may be -1 for the default timeout)null)NotSupportedException - if the transaction manager does not support
a transaction of the specified typeSystemException - if the transaction manager failed to create the
transaction