Class TransactionContext

java.lang.Object
org.apache.jackrabbit.data.core.TransactionContext

public class TransactionContext extends Object
Represents the transaction on behalf of the component that wants to explicitly demarcate transaction boundaries. After having been prepared, schedules a task that rolls back the transaction if some time passes without any further action. This will guarantee that global objects locked by one of the resources' InternalXAResource.prepare(org.apache.jackrabbit.data.core.TransactionContext) method, are eventually unlocked.
  • Constructor Details

    • TransactionContext

      public TransactionContext(Xid xid, InternalXAResource[] resources)
      Create a new instance of this class.
      Parameters:
      xid - associated xid
      resources - transactional resources
  • Method Details

    • setAttribute

      public void setAttribute(String name, Object value)
      Set an attribute on this transaction. If the value specified is null, it is semantically equivalent to removeAttribute(java.lang.String).
      Parameters:
      name - attribute name
      value - attribute value
    • getAttribute

      public Object getAttribute(String name)
      Return an attribute value on this transaction.
      Parameters:
      name - attribute name
      Returns:
      attribute value, null if no attribute with that name exists
    • removeAttribute

      public void removeAttribute(String name)
      Remove an attribute on this transaction.
      Parameters:
      name - attribute name
    • prepare

      public void prepare() throws XAException
      Prepare the transaction identified by this context. Prepares changes on all resources. If some resource reports an error on prepare, automatically rollback changes on all other resources. Throw exception at the end if errors were found.
      Throws:
      XAException - if an error occurs
    • commit

      public void commit() throws XAException
      Commit the transaction identified by this context. Commits changes on all resources. If some resource reports an error on commit, automatically rollback changes on all other resources. Throw exception at the end if some commit failed.
      Throws:
      XAException - if an error occurs
    • rollback

      public void rollback() throws XAException
      Rollback the transaction identified by this context. Rolls back changes on all resources. Throws exception at the end if errors were found.
      Throws:
      XAException - if an error occurs
    • isSuspended

      public boolean isSuspended()
      Return a flag indicating whether the association is suspended.
      Returns:
      true if the association is suspended; false otherwise
    • setSuspended

      public void setSuspended(boolean suspended)
      Set a flag indicating whether the association is suspended.
      Parameters:
      suspended - flag whether that the association is suspended.
    • getCurrentThreadId

      public static Object getCurrentThreadId()
      Returns the current thread identifier. The identifier is either the current thread instance or the global transaction identifier wrapped in a TransactionContext.XidWrapper, when running under a transaction.
      Returns:
      current thread identifier
    • isSameThreadId

      public static boolean isSameThreadId(Object a, Object b)
      Compares the given thread identifiers for equality.
      See Also: