org.apache.activemq
Class TransactionContext

java.lang.Object
  extended by org.apache.activemq.TransactionContext
All Implemented Interfaces:
javax.transaction.xa.XAResource
Direct Known Subclasses:
ManagedTransactionContext

public class TransactionContext
extends java.lang.Object
implements javax.transaction.xa.XAResource

A TransactionContext provides the means to control a JMS transaction. It provides a local transaction interface and also an XAResource interface.

An application server controls the transactional assignment of an XASession by obtaining its XAResource. It uses the XAResource to assign the session to a transaction, prepare and commit work on the transaction, and so on.

An XAResource provides some fairly sophisticated facilities for interleaving work on multiple transactions, recovering a list of transactions in progress, and so on. A JTA aware JMS provider must fully implement this functionality. This could be done by using the services of a database that supports XA, or a JMS provider may choose to implement this functionality from scratch.

See Also:
Session, QueueSession, TopicSession, XASession

Field Summary
 
Fields inherited from interface javax.transaction.xa.XAResource
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
 
Constructor Summary
TransactionContext(ActiveMQConnection connection)
           
 
Method Summary
 void addSynchronization(Synchronization s)
           
 void begin()
          Start a local transaction.
 void cleanup()
           
 void commit()
          Commits all work done in this transaction and releases any locks currently held.
 void commit(javax.transaction.xa.Xid xid, boolean onePhase)
           
 void end(javax.transaction.xa.Xid xid, int flags)
           
 void forget(javax.transaction.xa.Xid xid)
           
 ActiveMQConnection getConnection()
           
 LocalTransactionEventListener getLocalTransactionEventListener()
           
 TransactionId getTransactionId()
           
 int getTransactionTimeout()
           
 boolean isInLocalTransaction()
           
 boolean isInTransaction()
           
 boolean isInXATransaction()
           
 boolean isSameRM(javax.transaction.xa.XAResource xaResource)
           
 int prepare(javax.transaction.xa.Xid xid)
           
 javax.transaction.xa.Xid[] recover(int flag)
           
 void rollback()
          Rolls back any work done in this transaction and releases any locks currently held.
 void rollback(javax.transaction.xa.Xid xid)
           
 void setLocalTransactionEventListener(LocalTransactionEventListener localTransactionEventListener)
          Used by the resource adapter to listen to transaction events.
 boolean setTransactionTimeout(int seconds)
           
 void start(javax.transaction.xa.Xid xid, int flags)
          Associates a transaction with the resource.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TransactionContext

public TransactionContext(ActiveMQConnection connection)
Method Detail

isInXATransaction

public boolean isInXATransaction()

isInLocalTransaction

public boolean isInLocalTransaction()

isInTransaction

public boolean isInTransaction()

getLocalTransactionEventListener

public LocalTransactionEventListener getLocalTransactionEventListener()
Returns:
Returns the localTransactionEventListener.

setLocalTransactionEventListener

public void setLocalTransactionEventListener(LocalTransactionEventListener localTransactionEventListener)
Used by the resource adapter to listen to transaction events.

Parameters:
localTransactionEventListener - The localTransactionEventListener to set.

addSynchronization

public void addSynchronization(Synchronization s)

getTransactionId

public TransactionId getTransactionId()

begin

public void begin()
           throws javax.jms.JMSException
Start a local transaction.

Throws:
javax.jms.JMSException - on internal error

rollback

public void rollback()
              throws javax.jms.JMSException
Rolls back any work done in this transaction and releases any locks currently held.

Throws:
javax.jms.JMSException - if the JMS provider fails to roll back the transaction due to some internal error.
javax.jms.IllegalStateException - if the method is not called by a transacted session.

commit

public void commit()
            throws javax.jms.JMSException
Commits all work done in this transaction and releases any locks currently held.

Throws:
javax.jms.JMSException - if the JMS provider fails to commit the transaction due to some internal error.
javax.jms.IllegalStateException - if the method is not called by a transacted session.

start

public void start(javax.transaction.xa.Xid xid,
                  int flags)
           throws javax.transaction.xa.XAException
Associates a transaction with the resource.

Specified by:
start in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

end

public void end(javax.transaction.xa.Xid xid,
                int flags)
         throws javax.transaction.xa.XAException
Specified by:
end in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

prepare

public int prepare(javax.transaction.xa.Xid xid)
            throws javax.transaction.xa.XAException
Specified by:
prepare in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

rollback

public void rollback(javax.transaction.xa.Xid xid)
              throws javax.transaction.xa.XAException
Specified by:
rollback in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

commit

public void commit(javax.transaction.xa.Xid xid,
                   boolean onePhase)
            throws javax.transaction.xa.XAException
Specified by:
commit in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

forget

public void forget(javax.transaction.xa.Xid xid)
            throws javax.transaction.xa.XAException
Specified by:
forget in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

isSameRM

public boolean isSameRM(javax.transaction.xa.XAResource xaResource)
                 throws javax.transaction.xa.XAException
Specified by:
isSameRM in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

recover

public javax.transaction.xa.Xid[] recover(int flag)
                                   throws javax.transaction.xa.XAException
Specified by:
recover in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

getTransactionTimeout

public int getTransactionTimeout()
                          throws javax.transaction.xa.XAException
Specified by:
getTransactionTimeout in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

setTransactionTimeout

public boolean setTransactionTimeout(int seconds)
                              throws javax.transaction.xa.XAException
Specified by:
setTransactionTimeout in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

getConnection

public ActiveMQConnection getConnection()

cleanup

public void cleanup()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © 2005-2011. All Rights Reserved.