Package org.apache.tomcat.dbcp.dbcp2.managed

## Class TransactionRegistry

- java.lang.Object
- - org.apache.tomcat.dbcp.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 Summary

Constructors
`TransactionRegistry​(TransactionManager transactionManager)` Provided for backwards compatibility
`TransactionRegistry​(TransactionManager transactionManager, TransactionSynchronizationRegistry transactionSynchronizationRegistry)` Creates a TransactionRegistry for the specified transaction manager.

### Method Summary

All Methods Instance Methods Concrete Methods
`TransactionContext` `getActiveTransactionContext()` Gets the active TransactionContext or null if not Transaction is active.
`XAResource` `getXAResource​(Connection connection)` Gets the XAResource registered for the connection.
`void` `registerConnection​(Connection connection, XAResource xaResource)` Registers the association between a Connection and a XAResource.
`void` `unregisterConnection​(Connection connection)` Unregisters a destroyed connection from `TransactionRegistry`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### 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 Detail

#### getActiveTransactionContext

    public TransactionContext getActiveTransactionContext()
                                                   throws SQLException

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`.