# Package org.apache.commons.dbcp2.managed

This package provides support for pooling of ManagedConnections.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  TransactionContextListener | A listener for transaction completion events.
  XAConnectionFactory | XAConnectionFactory is an extension of ConnectionFactory used to create connections in a transaction managed environment.

- Class Summary
  Class | Description
  --- | ---
  BasicManagedDataSource | BasicManagedDataSource is an extension of BasicDataSource which creates ManagedConnections.
  DataSourceXAConnectionFactory | An implementation of XAConnectionFactory which uses a real XADataSource to obtain connections and XAResources.
  LocalXAConnectionFactory | An implementation of XAConnectionFactory which manages non-XA connections in XA transactions.
  LocalXAConnectionFactory.LocalXAResource | LocalXAResource 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.
  PoolableManagedConnection | PoolableConnection that unregisters from TransactionRegistry on Connection real destroy.
  PoolableManagedConnectionFactory | A `PoolableConnectionFactory` that creates `PoolableManagedConnection`s.
  TransactionContext | TransactionContext represents the association between a single XAConnectionFactory and a Transaction.
  TransactionRegistry | TransactionRegistry tracks Connections and XAResources in a transacted environment for a single XAConnectionFactory.

## Package org.apache.commons.dbcp2.managed Description

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.

Copyright © 2001–2020 The Apache Software Foundation. All rights reserved.