Package org.apache.activemq
Class TransactionContext
- java.lang.Object
-
- org.apache.activemq.TransactionContext
-
- All Implemented Interfaces:
XAResource
- Direct Known Subclasses:
ManagedTransactionContext
public class TransactionContext extends Object implements 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 Modifier and Type Field Description static StringxaErrorCodeMarker-
Fields inherited from interface javax.transaction.xa.XAResource
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
-
-
Constructor Summary
Constructors Constructor Description TransactionContext()TransactionContext(ActiveMQConnection connection)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddSynchronization(Synchronization s)voidbegin()Start a local transaction.voidcleanup()voidcommit()Commits all work done in this transaction and releases any locks currently held.voidcommit(Xid xid, boolean onePhase)voidend(Xid xid, int flags)voidforget(Xid xid)ActiveMQConnectiongetConnection()LocalTransactionEventListenergetLocalTransactionEventListener()protected StringgetResourceManagerId()TransactionIdgetTransactionId()intgetTransactionTimeout()booleanisInLocalTransaction()booleanisInTransaction()booleanisInXATransaction()booleanisRollbackOnly()booleanisSameRM(XAResource xaResource)intprepare(Xid xid)Xid[]recover(int flag)voidrollback()Rolls back any work done in this transaction and releases any locks currently held.voidrollback(Xid xid)ActiveMQConnectionsetConnection(ActiveMQConnection connection)voidsetLocalTransactionEventListener(LocalTransactionEventListener localTransactionEventListener)Used by the resource adapter to listen to transaction events.voidsetRollbackOnly(boolean val)booleansetTransactionTimeout(int seconds)voidstart(Xid xid, int flags)Associates a transaction with the resource.StringtoString()static XAExceptiontoXAException(JMSException e)Converts a JMSException from the server to an XAException.
-
-
-
Field Detail
-
xaErrorCodeMarker
public static final String xaErrorCodeMarker
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
TransactionContext
public TransactionContext()
-
TransactionContext
public TransactionContext(ActiveMQConnection connection)
-
-
Method Detail
-
isInXATransaction
public boolean isInXATransaction()
-
setRollbackOnly
public void setRollbackOnly(boolean val)
-
isRollbackOnly
public boolean isRollbackOnly()
-
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 JMSExceptionStart a local transaction.- Throws:
JMSException- on internal error
-
rollback
public void rollback() throws JMSExceptionRolls back any work done in this transaction and releases any locks currently held.- Throws:
JMSException- if the JMS provider fails to roll back the transaction due to some internal error.IllegalStateException- if the method is not called by a transacted session.
-
commit
public void commit() throws JMSExceptionCommits all work done in this transaction and releases any locks currently held.- Throws:
JMSException- if the JMS provider fails to commit the transaction due to some internal error.IllegalStateException- if the method is not called by a transacted session.
-
start
public void start(Xid xid, int flags) throws XAException
Associates a transaction with the resource.- Specified by:
startin interfaceXAResource- Throws:
XAException
-
end
public void end(Xid xid, int flags) throws XAException
- Specified by:
endin interfaceXAResource- Throws:
XAException
-
prepare
public int prepare(Xid xid) throws XAException
- Specified by:
preparein interfaceXAResource- Throws:
XAException
-
rollback
public void rollback(Xid xid) throws XAException
- Specified by:
rollbackin interfaceXAResource- Throws:
XAException
-
commit
public void commit(Xid xid, boolean onePhase) throws XAException
- Specified by:
commitin interfaceXAResource- Throws:
XAException
-
forget
public void forget(Xid xid) throws XAException
- Specified by:
forgetin interfaceXAResource- Throws:
XAException
-
isSameRM
public boolean isSameRM(XAResource xaResource) throws XAException
- Specified by:
isSameRMin interfaceXAResource- Throws:
XAException
-
recover
public Xid[] recover(int flag) throws XAException
- Specified by:
recoverin interfaceXAResource- Throws:
XAException
-
getTransactionTimeout
public int getTransactionTimeout() throws XAException- Specified by:
getTransactionTimeoutin interfaceXAResource- Throws:
XAException
-
setTransactionTimeout
public boolean setTransactionTimeout(int seconds) throws XAException- Specified by:
setTransactionTimeoutin interfaceXAResource- Throws:
XAException
-
getResourceManagerId
protected String getResourceManagerId() throws JMSException
- Throws:
JMSException
-
toXAException
public static XAException toXAException(JMSException e)
Converts a JMSException from the server to an XAException. if the JMSException contained a linked XAException that is returned instead.- Parameters:
e- JMSException to convert- Returns:
- XAException wrapping original exception or its message
-
getConnection
public ActiveMQConnection getConnection()
-
setConnection
public ActiveMQConnection setConnection(ActiveMQConnection connection)
-
cleanup
public void cleanup()
-
-