Class TransactionImpl

  • All Implemented Interfaces:
    javax.transaction.Transaction
    Direct Known Subclasses:
    EmbeddedTransaction, FakeJTATransaction

    public class TransactionImpl
    extends Object
    implements javax.transaction.Transaction
    A basic Transaction implementation.
    Since:
    9.1
    Author:
    Bela Ban, Pedro Ruivo
    • Constructor Detail

      • TransactionImpl

        protected TransactionImpl()
    • Method Detail

      • commit

        public void commit()
                    throws javax.transaction.RollbackException,
                           javax.transaction.HeuristicMixedException,
                           javax.transaction.HeuristicRollbackException,
                           SecurityException
        Attempt to commit this transaction.
        Specified by:
        commit in interface javax.transaction.Transaction
        Throws:
        javax.transaction.RollbackException - If the transaction was marked for rollback only, the transaction is rolled back and this exception is thrown.
        javax.transaction.HeuristicMixedException - If a heuristic decision was made and some some parts of the transaction have been committed while other parts have been rolled back.
        javax.transaction.HeuristicRollbackException - If a heuristic decision to roll back the transaction was made.
        SecurityException - If the caller is not allowed to commit this transaction.
      • rollback

        public void rollback()
                      throws IllegalStateException,
                             javax.transaction.SystemException
        Rolls back this transaction.
        Specified by:
        rollback in interface javax.transaction.Transaction
        Throws:
        IllegalStateException - If the transaction is in a state where it cannot be rolled back. This could be because the transaction is no longer active, or because it is in the prepared state.
        javax.transaction.SystemException - If the transaction service fails in an unexpected way.
      • setRollbackOnly

        public void setRollbackOnly()
                             throws IllegalStateException
        Mark the transaction so that the only possible outcome is a rollback.
        Specified by:
        setRollbackOnly in interface javax.transaction.Transaction
        Throws:
        IllegalStateException - If the transaction is not in an active state.
      • getStatus

        public int getStatus()
        Get the status of the transaction.
        Specified by:
        getStatus in interface javax.transaction.Transaction
        Returns:
        The status of the transaction. This is one of the Status constants.
      • enlistResource

        public boolean enlistResource​(XAResource resource)
                               throws javax.transaction.RollbackException,
                                      IllegalStateException,
                                      javax.transaction.SystemException
        Enlist an XA resource with this transaction.
        Specified by:
        enlistResource in interface javax.transaction.Transaction
        Returns:
        true if the resource could be enlisted with this transaction, otherwise false.
        Throws:
        javax.transaction.RollbackException - If the transaction is marked for rollback only.
        IllegalStateException - If the transaction is in a state where resources cannot be enlisted. This could be because the transaction is no longer active, or because it is in the prepared state.
        javax.transaction.SystemException - If the transaction service fails in an unexpected way.
      • delistResource

        public boolean delistResource​(XAResource xaRes,
                                      int flag)
                               throws IllegalStateException,
                                      javax.transaction.SystemException
        De-list an XA resource from this transaction.
        Specified by:
        delistResource in interface javax.transaction.Transaction
        Returns:
        true if the resource could be de-listed from this transaction, otherwise false.
        Throws:
        IllegalStateException - If the transaction is in a state where resources cannot be de-listed. This could be because the transaction is no longer active.
        javax.transaction.SystemException - If the transaction service fails in an unexpected way.
      • registerSynchronization

        public void registerSynchronization​(javax.transaction.Synchronization sync)
                                     throws javax.transaction.RollbackException,
                                            IllegalStateException
        Register a Synchronization callback with this transaction.
        Specified by:
        registerSynchronization in interface javax.transaction.Transaction
        Throws:
        javax.transaction.RollbackException - If the transaction is marked for rollback only.
        IllegalStateException - If the transaction is in a state where Synchronization callbacks cannot be registered. This could be because the transaction is no longer active, or because it is in the prepared state.
      • runPrepare

        public boolean runPrepare()
      • runCommit

        public void runCommit​(boolean forceRollback)
                       throws javax.transaction.HeuristicMixedException,
                              javax.transaction.HeuristicRollbackException,
                              javax.transaction.RollbackException
        Runs the second phase of two-phase-commit protocol.

        If forceRollback is true, then a RollbackException is thrown with the message FORCE_ROLLBACK_MESSAGE.

        Parameters:
        forceRollback - force the transaction to rollback.
        Throws:
        javax.transaction.HeuristicMixedException
        javax.transaction.HeuristicRollbackException
        javax.transaction.RollbackException
      • setXid

        public void setXid​(XidImpl xid)
      • getEnlistedSynchronization

        public Collection<javax.transaction.Synchronization> getEnlistedSynchronization()
      • hashCode

        public final int hashCode()
        Must be defined for increased performance
        Overrides:
        hashCode in class Object
      • equals

        public final boolean equals​(Object obj)
        Overrides:
        equals in class Object