Class TransactionRegistry

java.lang.Object
org.apache.commons.dbcp2.managed.TransactionRegistry

public class TransactionRegistry extends Object
TransactionRegistry tracks Connections and XAResources in a transacted environment for a single XAConnectionFactory.

The TransactionRegistry hides the details of transaction processing from the existing DBCP pooling code, and gives the ManagedConnection a way to enlist connections in a transaction, allowing for the maximal rescue of DBCP.

Since:
2.0
  • Constructor Details

    • TransactionRegistry

      public TransactionRegistry(TransactionManager transactionManager)
      Provided for backwards compatibility
      Parameters:
      transactionManager - the transaction manager used to enlist connections
    • TransactionRegistry

      public TransactionRegistry(TransactionManager transactionManager, TransactionSynchronizationRegistry transactionSynchronizationRegistry)
      Creates a TransactionRegistry for the specified transaction manager.
      Parameters:
      transactionManager - the transaction manager used to enlist connections.
      transactionSynchronizationRegistry - The optional TSR to register synchronizations with
      Since:
      2.6.0
  • Method Details

    • getActiveTransactionContext

      Gets the active TransactionContext or null if not Transaction is active.
      Returns:
      The active TransactionContext or null if no Transaction is active.
      Throws:
      SQLException - Thrown when an error occurs while fetching the transaction.
    • getXAResource

      public XAResource getXAResource(Connection connection) throws SQLException
      Gets the XAResource registered for the connection.
      Parameters:
      connection - the connection
      Returns:
      The XAResource registered for the connection; never null.
      Throws:
      SQLException - Thrown when the connection does not have a registered XAResource.
    • registerConnection

      public void registerConnection(Connection connection, XAResource xaResource)
      Registers the association between a Connection and a XAResource. When a connection is enlisted in a transaction, it is actually the XAResource that is given to the transaction manager.
      Parameters:
      connection - The JDBC connection.
      xaResource - The XAResource which managed the connection within a transaction.
    • unregisterConnection

      public void unregisterConnection(Connection connection)
      Unregisters a destroyed connection from TransactionRegistry.
      Parameters:
      connection - A destroyed connection from TransactionRegistry.