Package org.apache.commons.dbcp2.managed
Class TransactionRegistry
java.lang.Object
org.apache.commons.dbcp2.managed.TransactionRegistry
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
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Map<jakarta.transaction.Transaction, TransactionContext> private final jakarta.transaction.TransactionManagerprivate final jakarta.transaction.TransactionSynchronizationRegistryprivate final Map<Connection, XAResource> -
Constructor Summary
ConstructorsConstructorDescriptionTransactionRegistry(jakarta.transaction.TransactionManager transactionManager) Provided for backwards compatibilityTransactionRegistry(jakarta.transaction.TransactionManager transactionManager, jakarta.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry) Creates a TransactionRegistry for the specified transaction manager. -
Method Summary
Modifier and TypeMethodDescriptionGets the active TransactionContext or null if not Transaction is active.private ConnectiongetConnectionKey(Connection connection) getXAResource(Connection connection) Gets the XAResource registered for the connection.voidregisterConnection(Connection connection, XAResource xaResource) Registers the association between a Connection and a XAResource.voidunregisterConnection(Connection connection) Unregisters a destroyed connection fromTransactionRegistry.
-
Field Details
-
transactionManager
private final jakarta.transaction.TransactionManager transactionManager -
caches
-
xaResources
-
transactionSynchronizationRegistry
private final jakarta.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry
-
-
Constructor Details
-
TransactionRegistry
public TransactionRegistry(jakarta.transaction.TransactionManager transactionManager) Provided for backwards compatibility- Parameters:
transactionManager- the transaction manager used to enlist connections
-
TransactionRegistry
public TransactionRegistry(jakarta.transaction.TransactionManager transactionManager, jakarta.transaction.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.
-
getConnectionKey
-
getXAResource
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
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
Unregisters a destroyed connection fromTransactionRegistry.- Parameters:
connection- A destroyed connection fromTransactionRegistry.
-