Proxy for a target CCI
javax.resource.cci.ConnectionFactory , adding
awareness of Spring-managed transactions. Similar to a transactional JNDI
ConnectionFactory as provided by a J2EE server.
Data access code that should remain unaware of Spring's data access support
can work with this proxy to seamlessly participate in Spring-managed transactions.
Note that the transaction manager, for example the
CciLocalTransactionManager ,
still needs to work with underlying ConnectionFactory, not with this proxy.
Make sure that TransactionAwareConnectionFactoryProxy is the outermost
ConnectionFactory of a chain of ConnectionFactory proxies/adapters.
TransactionAwareConnectionFactoryProxy can delegate either directly to the
target connection pool or to some intermediate proxy/adapter like
ConnectionSpecConnectionFactoryAdapter .
Delegates to
ConnectionFactoryUtils for automatically participating in
thread-bound transactions, for example managed by
CciLocalTransactionManager .
getConnection calls and close calls on returned Connections
will behave properly within a transaction, i.e. always operate on the transactional
Connection. If not within a transaction, normal ConnectionFactory behavior applies.
This proxy allows data access code to work with the plain JCA CCI API and still
participate in Spring-managed transactions, similar to CCI code in a J2EE/JTA
environment. However, if possible, use Spring's ConnectionFactoryUtils, CciTemplate or
CCI operation objects to get transaction participation even without a proxy for
the target ConnectionFactory, avoiding the need to define such a proxy in the first place.
NOTE: This ConnectionFactory proxy needs to return wrapped Connections
in order to handle close calls properly. Therefore, the returned Connections cannot
be cast to a native CCI Connection type or to a connection pool implementation type.
author: Juergen Hoeller since: 1.2 See Also: javax.resource.cci.ConnectionFactory.getConnection See Also: javax.resource.cci.Connection.close See Also: org.springframework.jca.cci.connection.ConnectionFactoryUtils.doGetConnection See Also: org.springframework.jca.cci.connection.ConnectionFactoryUtils.doReleaseConnection |