Class 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.
    Version:
    $Revision$
    Author:
    Dain Sundstrom
    • Constructor Detail

      • TransactionRegistry

        public TransactionRegistry​(TransactionManager transactionManager)
        Creates a TransactionRegistry for the specified transaction manager.
        Parameters:
        transactionManager - the transaction manager used to enlist connections
    • Method Detail

      • 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
      • 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 - if the connection does not have a registered XAResource
      • getActiveTransactionContext

        public TransactionContext getActiveTransactionContext()
                                                       throws SQLException
        Gets the active TransactionContext or null if not Transaction is active.
        Returns:
        the active TransactionContext or null if not Transaction is active
        Throws:
        SQLException - if an error occurs while fetching the transaction
      • unregisterConnection

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