Class 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 Detail

      • TransactionContext

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

      • 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:
        getCurrentThreadId()