Class TransactionImpl

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

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

      Constructors 
      Modifier Constructor Description
      protected TransactionImpl()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void commit()
      Attempt to commit this transaction.
      boolean delistResource​(javax.transaction.xa.XAResource xaRes, int flag)
      De-list an XA resource from this transaction.
      boolean enlistResource​(javax.transaction.xa.XAResource resource)
      Enlist an XA resource with this transaction.
      boolean equals​(java.lang.Object obj)  
      java.util.Collection<javax.transaction.xa.XAResource> getEnlistedResources()  
      java.util.Collection<javax.transaction.Synchronization> getEnlistedSynchronization()  
      int getStatus()
      Get the status of the transaction.
      javax.transaction.xa.Xid getXid()  
      int hashCode()
      Must be defined for increased performance
      void registerSynchronization​(javax.transaction.Synchronization sync)
      Register a Synchronization callback with this transaction.
      void rollback()
      Rolls back this transaction.
      void runCommit​(boolean forceRollback)
      Runs the second phase of two-phase-commit protocol.
      boolean runPrepare()  
      void setRollbackOnly()
      Mark the transaction so that the only possible outcome is a rollback.
      void setXid​(javax.transaction.xa.Xid xid)  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • TransactionImpl

        protected TransactionImpl()
    • Method Detail

      • commit

        public void commit()
                    throws javax.transaction.RollbackException,
                           javax.transaction.HeuristicMixedException,
                           javax.transaction.HeuristicRollbackException,
                           java.lang.SecurityException,
                           javax.transaction.SystemException
        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.SystemException - If the transaction service fails in an unexpected way.
        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.
        java.lang.SecurityException - If the caller is not allowed to commit this transaction.
      • rollback

        public void rollback()
                      throws java.lang.IllegalStateException,
                             javax.transaction.SystemException
        Rolls back this transaction.
        Specified by:
        rollback in interface javax.transaction.Transaction
        Throws:
        java.lang.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 java.lang.IllegalStateException,
                                    javax.transaction.SystemException
        Mark the transaction so that the only possible outcome is a rollback.
        Specified by:
        setRollbackOnly in interface javax.transaction.Transaction
        Throws:
        java.lang.IllegalStateException - If the transaction is not in an active state.
        javax.transaction.SystemException - If the transaction service fails in an unexpected way.
      • getStatus

        public int getStatus()
                      throws javax.transaction.SystemException
        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.
        Throws:
        javax.transaction.SystemException - If the transaction service fails in an unexpected way.
      • enlistResource

        public boolean enlistResource​(javax.transaction.xa.XAResource resource)
                               throws javax.transaction.RollbackException,
                                      java.lang.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.
        java.lang.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​(javax.transaction.xa.XAResource xaRes,
                                      int flag)
                               throws java.lang.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:
        java.lang.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,
                                            java.lang.IllegalStateException,
                                            javax.transaction.SystemException
        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.
        java.lang.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.
        javax.transaction.SystemException - If the transaction service fails in an unexpected way.
      • getEnlistedResources

        public java.util.Collection<javax.transaction.xa.XAResource> getEnlistedResources()
      • 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
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getXid

        public javax.transaction.xa.Xid getXid()
      • setXid

        public void setXid​(javax.transaction.xa.Xid xid)
      • getEnlistedSynchronization

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

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

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