Class TransactionHelper

    • Field Detail

      • EXECUTOR

        protected static final ExecutorService EXECUTOR
        Thread pool used to execute code in a separate transactional context.
        Since:
        11.1
    • Method Detail

      • getTransactionStatus

        public static int getTransactionStatus()
        Gets the transaction status.
        Returns:
        the transaction status, or -1 if there is no transaction manager
        Since:
        8.4
        See Also:
        Status
      • lookupSynchronizationRegistry

        public static javax.transaction.TransactionSynchronizationRegistry lookupSynchronizationRegistry()
                                                                                                  throws NamingException
        Looks up the TransactionSynchronizationRegistry in JNDI.
        Returns:
        the TransactionSynchronizationRegistry
        Throws:
        NamingException - if not found
      • isNoTransaction

        public static boolean isNoTransaction()
        Checks if there is no transaction
        Since:
        6.0
      • isTransactionActive

        public static boolean isTransactionActive()
        Checks if the current User Transaction is active.
      • isTransactionMarkedRollback

        public static boolean isTransactionMarkedRollback()
        Checks if the current User Transaction is marked rollback only.
      • isTransactionActiveOrPreparing

        public static boolean isTransactionActiveOrPreparing()
        Checks if the current User Transaction is active or preparing.
        Since:
        8.4
      • isTransactionTimedOut

        public static boolean isTransactionTimedOut()
        Checks if the current User Transaction has already timed out, i.e., whether a commit would immediately abort with a timeout exception.
        Returns:
        true if there is a current transaction that has timed out, false otherwise
        Since:
        7.1
      • startTransaction

        public static boolean startTransaction()
        Starts a new User Transaction.
        Returns:
        true if the transaction was successfully started, false otherwise
      • startTransaction

        public static boolean startTransaction​(int timeout)
        Starts a new User Transaction with the specified timeout.
        Parameters:
        timeout - the timeout in seconds, %lt;= 0 for the default
        Returns:
        true if the transaction was successfully started, false otherwise
        Since:
        5.6
      • commitOrRollbackTransaction

        public static void commitOrRollbackTransaction()
        Commits or rolls back the User Transaction depending on the transaction status.
      • noteSuppressedExceptions

        protected static void noteSuppressedExceptions()
        After this, some exceptions during transaction commit may be suppressed and remembered.
        Since:
        5.9.4
      • noteSuppressedException

        public static void noteSuppressedException​(Exception e)
        Remembers the exception if it happens during the processing of a commit, so that it can be surfaced as a suppressed exception at the end of the commit.
        Since:
        5.9.4
      • setTransactionRollbackOnly

        public static boolean setTransactionRollbackOnly()
        Sets the current User Transaction as rollback only.
        Returns:
        true if the transaction was successfully marked rollback only, false otherwise
      • setTransactionRollbackOnlyIfTimedOut

        public static boolean setTransactionRollbackOnlyIfTimedOut()
        Sets the current User Transaction as rollback only if it has timed out.
        Returns:
        true if the transaction was successfully marked rollback only, false otherwise
        Since:
        7.1
      • registerSynchronization

        public static void registerSynchronization​(javax.transaction.Synchronization handler)
      • enlistResource

        public static void enlistResource​(XAResource xaRes)
        Enlists a XA resource in the current transaction.
        Parameters:
        xaRes - the XA resource
        Since:
        11.1
      • runWithoutTransaction

        public static <R> R runWithoutTransaction​(Supplier<R> supplier)
        Calls the given Supplier without a transactional context.
        Parameters:
        supplier - the Supplier
        Returns:
        the supplier's result
        Since:
        9.1
      • runInNewTransaction

        public static <R> R runInNewTransaction​(Supplier<R> supplier)
        Calls the given Supplier in a new transactional context.
        Parameters:
        supplier - the Supplier
        Returns:
        the supplier's result
        Since:
        9.1
      • runInTransaction

        public static void runInTransaction​(Runnable runnable)
        Runs the given Runnable in a transactional context. Will not start a new transaction if one already exists.
        Parameters:
        runnable - the Runnable
        Since:
        8.4
      • runInTransaction

        public static <R> R runInTransaction​(Supplier<R> supplier)
        Calls the given Supplier in a transactional context. Will not start a new transaction if one already exists.
        Parameters:
        supplier - the Supplier
        Returns:
        the supplier's result
        Since:
        8.4
      • runWithoutTransactionInternal

        protected static <R> R runWithoutTransactionInternal​(Supplier<R> supplier)
        Calls the given Supplier in a context without a transaction. The supplier must do its own transactional cleanup to restore the thread to a pristine state.
        Parameters:
        supplier - the Supplier
        Returns:
        the supplier's result
        Since:
        11.1