Package org.apache.jackrabbit.data.core
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 Summary
Constructors Constructor Description TransactionContext(Xid xid, InternalXAResource[] resources)Create a new instance of this class.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcommit()Commit the transaction identified by this context.ObjectgetAttribute(String name)Return an attribute value on this transaction.static ObjectgetCurrentThreadId()Returns the current thread identifier.static booleanisSameThreadId(Object a, Object b)Compares the given thread identifiers for equality.booleanisSuspended()Return a flag indicating whether the association is suspended.voidprepare()Prepare the transaction identified by this context.voidremoveAttribute(String name)Remove an attribute on this transaction.voidrollback()Rollback the transaction identified by this context.voidsetAttribute(String name, Object value)Set an attribute on this transaction.voidsetSuspended(boolean suspended)Set a flag indicating whether the association is suspended.
-
-
-
Constructor Detail
-
TransactionContext
public TransactionContext(Xid xid, InternalXAResource[] resources)
Create a new instance of this class.- Parameters:
xid- associated xidresources- transactional resources
-
-
Method Detail
-
setAttribute
public void setAttribute(String name, Object value)
Set an attribute on this transaction. If the value specified isnull, it is semantically equivalent toremoveAttribute(java.lang.String).- Parameters:
name- attribute namevalue- attribute value
-
getAttribute
public Object getAttribute(String name)
Return an attribute value on this transaction.- Parameters:
name- attribute name- Returns:
- attribute value,
nullif 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 XAExceptionPrepare 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 XAExceptionCommit 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 XAExceptionRollback 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:
trueif the association is suspended;falseotherwise
-
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 aTransactionContext.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()
-
-