Class XATransactionState

    • Field Detail

      • TRO_DEADLOCK

        static final int TRO_DEADLOCK
        Rollback-only due to deadlock
        See Also:
        Constant Field Values
      • suspendedList

        java.util.HashMap<EmbedXAResource,​XATransactionState> suspendedList
        When an XAResource suspends a transaction (end(TMSUSPEND)) it must be resumed using the same XAConnection. This has been the traditional Cloudscape/Derby behaviour, though there does not seem to be a specific reference to this behaviour in the JTA spec. Note that while the transaction is suspended by this XAResource, another XAResource may join the transaction and suspend it after the join.
      • associationState

        int associationState
        Association state of the transaction.
      • rollbackOnlyCode

        int rollbackOnlyCode
      • isPrepared

        boolean isPrepared
        has this transaction been prepared.
      • performTimeoutRollback

        boolean performTimeoutRollback
        Indicates whether this transaction is supposed to be rolled back by timeout.
    • Method Detail

      • getTimerFactory

        private static TimerFactory getTimerFactory()
      • cleanupOnError

        public void cleanupOnError​(java.lang.Throwable t)
        Description copied from interface: Context
        Contexts will be passed errors that are caught by the outer system when they are serious enough to require corrective action. They will be told what the error is, so that they can react appropriately. Most of the time, the contexts will react by either doing nothing or by removing themselves from the context manager. If there are no other references to the context, removing itself from the manager equates to freeing it.
        On an exception that is session severity or greater the Context must push itself off the stack. This is to ensure that after a session has been closed there are no Contexts on the stack that potentially hold references to objects, thus delaying their garbage collection.

        Contexts must release all their resources before removing themselves from their context manager.

        The context manager will "unwind" the contexts during cleanup in the reverse order they were placed on its global stack.

        If error is an instance of StandardException then an implementation of this method may throw a new exception if and only if the new exception is an instance of StandardException that is more severe than the original error or the new exception is a not an instance of StandardException (e.g java.lang.NullPointerException).

      • start

        void start​(EmbedXAResource resource,
                   int flags)
            throws javax.transaction.xa.XAException
        Throws:
        javax.transaction.xa.XAException
      • end

        boolean end​(EmbedXAResource resource,
                    int flags,
                    boolean endingCurrentXid)
             throws javax.transaction.xa.XAException
        Throws:
        javax.transaction.xa.XAException
      • scheduleTimeoutTask

        void scheduleTimeoutTask​(long timeoutMillis)
        Schedule a timeout task which will rollback the global transaction after the specified time will elapse.
        Parameters:
        timeoutMillis - The number of milliseconds to be elapsed before the transaction will be rolled back.
      • xa_rollback

        void xa_rollback()
                  throws java.sql.SQLException
        Rollback the global transaction and cancel the timeout task.
        Throws:
        java.sql.SQLException
      • xa_commit

        void xa_commit​(boolean onePhase)
                throws java.sql.SQLException
        Commit the global transaction and cancel the timeout task.
        Parameters:
        onePhase - Indicates whether to use one phase commit protocol. Otherwise two phase commit protocol will be used.
        Throws:
        java.sql.SQLException
      • xa_prepare

        int xa_prepare()
                throws java.sql.SQLException
        Prepare the global transaction for commit.
        Throws:
        java.sql.SQLException
      • xa_finalize

        private void xa_finalize()
        This method cancels timeoutTask and assigns 'performTimeoutRollback = false'.
      • cancel

        void cancel​(java.lang.String messageId)
             throws javax.transaction.xa.XAException
        This function is called from the timer task when the transaction times out.
        Throws:
        javax.transaction.xa.XAException
        See Also:
        XATransactionState.CancelXATransactionTask
      • getMonitor

        private static ModuleFactory getMonitor()
        Privileged Monitor lookup. Must be private so that user code can't call this entry point.