Class TransactionImpl

java.lang.Object
org.infinispan.commons.tx.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 Details

    • TransactionImpl

      protected TransactionImpl()
  • Method Details

    • 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.
    • commitAsync

      public CompletionStage<Void> commitAsync(TransactionResourceConverter converter)
    • 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.
    • rollbackAsync

      public CompletionStage<Void> rollbackAsync(TransactionResourceConverter converter)
    • 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.
    • getEnlistedResources

      public Collection<XAResource> getEnlistedResources()
    • runPrepare

      public boolean runPrepare()
    • runPrepareAsync

      public CompletionStage<Boolean> runPrepareAsync(TransactionResourceConverter resourceConverter)
    • 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
    • runCommitAsync

      public CompletionStage<Void> runCommitAsync(boolean forceRollback, TransactionResourceConverter resourceConverter)
    • toString

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

      public XidImpl getXid()
    • 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