This package provides support for pooling of ManagedConnections. A managed connection is responsible for managing a database connection in a transactional environment (typically called Container Managed). A managed connection operates like any other connection when no global transaction (a.k.a. XA transaction or JTA Transaction) is in progress. When a global transaction is active a single physical connection to the database is used by all ManagedConnections accessed in the scope of the transaction. Connection sharing means that all data access during a transaction has a consistent view of the database. When the global transaction is committed or rolled back the enlisted connections are committed or rolled back.
This package supports full XADataSources and non-XA data sources using local transaction semantics. non-XA data sources commit and rollback as part of the transaction but are not recoverable in the case of an error because they do not implement the two-phase commit protocol.
Interface Summary Interface Description TransactionContextListenerA listener for transaction completion events. XAConnectionFactoryXAConnectionFactory is an extension of ConnectionFactory used to create connections in a transaction managed environment.
Class Summary Class Description BasicManagedDataSourceBasicManagedDataSource is an extension of BasicDataSource which creates ManagedConnections. DataSourceXAConnectionFactoryAn implementation of XAConnectionFactory which uses a real XADataSource to obtain connections and XAResources. LocalXAConnectionFactoryAn implementation of XAConnectionFactory which manages non-XA connections in XA transactions. LocalXAConnectionFactory.LocalXAResourceLocalXAResource is a fake XAResource for non-XA connections. ManagedConnection<C extends Connection>ManagedConnection is responsible for managing a database connection in a transactional environment (typically called "Container Managed"). ManagedDataSource<C extends Connection>The ManagedDataSource is a PoolingDataSource that creates ManagedConnections. PoolableManagedConnectionPoolableConnection that unregisters from TransactionRegistry on Connection real destroy. PoolableManagedConnectionFactory TransactionContextTransactionContext represents the association between a single XAConnectionFactory and a Transaction. TransactionRegistryTransactionRegistry tracks Connections and XAResources in a transacted environment for a single XAConnectionFactory.