Special
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!
author: Paul Parkinson author: Juergen Hoeller since: 2.0.3 See Also: org.springframework.transaction.TransactionDefinition.getName See Also: org.springframework.transaction.TransactionDefinition.getIsolationLevel See Also: oracle.j2ee.transaction.OC4JTransactionManager.begin(String) See Also: oracle.j2ee.transaction.OC4JTransaction.setTransactionIsolation See Also: oracle.j2ee.transaction.TransactionUtility |