Class TransactionContext


  • public class TransactionContext
    extends Object
    TransactionContext represents the association between a single XAConnectionFactory and a Transaction. This context contains a single shared connection which should be used by all ManagedConnections for the XAConnectionFactory, the ability to listen for the transaction completion event, and a method to check the status of the transaction.
    Since:
    2.0
    • Constructor Detail

      • TransactionContext

        public TransactionContext​(TransactionRegistry transactionRegistry,
                                  jakarta.transaction.Transaction transaction)
        Provided for backwards compatibility
        Parameters:
        transactionRegistry - the TransactionRegistry used to obtain the XAResource for the shared connection
        transaction - the transaction
      • TransactionContext

        public TransactionContext​(TransactionRegistry transactionRegistry,
                                  jakarta.transaction.Transaction transaction,
                                  jakarta.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry)
        Creates a TransactionContext for the specified Transaction and TransactionRegistry. The TransactionRegistry is used to obtain the XAResource for the shared connection when it is enlisted in the transaction.
        Parameters:
        transactionRegistry - the TransactionRegistry used to obtain the XAResource for the shared connection
        transaction - the transaction
        transactionSynchronizationRegistry - The optional TSR to register synchronizations with
        Since:
        2.6.0
    • Method Detail

      • addTransactionContextListener

        public void addTransactionContextListener​(TransactionContextListener listener)
                                           throws SQLException
        Adds a listener for transaction completion events.
        Parameters:
        listener - the listener to add
        Throws:
        SQLException - if a problem occurs adding the listener to the transaction
      • completeTransaction

        public void completeTransaction()
        Sets the transaction complete flag to true.
        Since:
        2.4.0
      • getSharedConnection

        public Connection getSharedConnection()
        Gets the connection shared by all ManagedConnections in the transaction. Specifically, connection using the same XAConnectionFactory from which the TransactionRegistry was obtained.
        Returns:
        the shared connection for this transaction
      • isActive

        public boolean isActive()
                         throws SQLException
        True if the transaction is active or marked for rollback only.
        Returns:
        true if the transaction is active or marked for rollback only; false otherwise
        Throws:
        SQLException - if a problem occurs obtaining the transaction status
      • isTransactionComplete

        public boolean isTransactionComplete()
        Gets the transaction complete flag to true.
        Returns:
        The transaction complete flag.
        Since:
        2.4.0
      • setSharedConnection

        public void setSharedConnection​(Connection sharedConnection)
                                 throws SQLException
        Sets the shared connection for this transaction. The shared connection is enlisted in the transaction.
        Parameters:
        sharedConnection - the shared connection
        Throws:
        SQLException - if a shared connection is already set, if XAResource for the connection could not be found in the transaction registry, or if there was a problem enlisting the connection in the transaction