org.apache.jackrabbit.core
Class TransactionContext

java.lang.Object
  extended byorg.apache.jackrabbit.core.TransactionContext
All Implemented Interfaces:
Runnable

public class TransactionContext
extends Object
implements Runnable

Represents the transaction on behalf of the component that wants to explictely demarcate transcation boundaries. After having been prepared, starts a thread 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.core.TransactionContext) method, are eventually unlocked.


Constructor Summary
TransactionContext(InternalXAResource[] resources, int timeout)
          Create a new instance of this class.
 
Method Summary
 void commit()
          Commit the transaction identified by this context.
 Object getAttribute(String name)
          Return an attribute value on this transaction.
 void prepare()
          Prepare the transaction identified by this context.
 void removeAttribute(String name)
          Remove an attribute on this transaction.
 void rollback()
          Rollback the transaction identified by this context.
 void run()
          

Waits for the amount of time specified as transaction timeout.

 void setAttribute(String name, Object value)
          Set an attribute on this transaction.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransactionContext

public TransactionContext(InternalXAResource[] resources,
                          int timeout)
Create a new instance of this class.

Parameters:
resources - transactional resources
timeout - timeout, in seconds
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

run

public void run()

Waits for the amount of time specified as transaction timeout. After this time has elapsed, rolls back the transaction if still prepared and marks the transaction rolled back.

Specified by:
run in interface Runnable


Copyright © 2004-2006 The Apache Software Foundation. All Rights Reserved.