org.activemq
Class ActiveMQXASession
java.lang.Object
org.activemq.ActiveMQSession
org.activemq.ActiveMQXASession
- All Implemented Interfaces:
- Runnable, QueueSession, Session, TopicSession, XAQueueSession, XASession, XATopicSession, ActiveMQMessageDispatcher, StatsCapable, MessageAcknowledge
public class ActiveMQXASession
- extends ActiveMQSession
- implements QueueSession, TopicSession, XAQueueSession, XATopicSession
The XASession interface extends the capability of Session by adding access
to a JMS provider's support for the Java Transaction API (JTA) (optional).
This support takes the form of a javax.transaction.xa.XAResource object.
The functionality of this object closely resembles that defined by the
standard X/Open XA Resource 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.
A client of the application server is given what it thinks is a regular
JMS Session. Behind the scenes, the application server controls the
transaction management of the underlying XASession.
The XASession interface is optional. JMS providers are not required to
support this interface. This interface is for use by JMS providers to
support transactional environments. Client programs are strongly encouraged
to use the transactional support available in their environment, rather
than use these XA interfaces directly.
- Version:
- $Revision: 1.1.1.1 $
- See Also:
Session
,
QueueSession
,
TopicSession
,
XASession
Methods inherited from class org.activemq.ActiveMQSession |
acknowledge, addConsumer, addProducer, afterMessageDelivered, beforeMessageDelivered, checkClosed, clearDeliveredMessages, clearMessagesInProgress, close, createBrowser, createBrowser, createBytesMessage, createConsumer, createConsumer, createConsumer, createConsumerInfo, createDurableSubscriber, createDurableSubscriber, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createProducerInfo, createPublisher, createQueue, createReceiver, createReceiver, createSender, createStreamMessage, createSubscriber, createSubscriber, createTemporaryQueue, createTemporaryTopic, createTextMessage, createTextMessage, createTopic, dispatch, doAcknowledge, doClose, getAcknowledgeMode, getDeliveryListener, getMessageListener, getSessionId, getSessionStats, getStartTime, getStats, getTransactionContext, getUnconsumedMessages, hasUncomsumedMessages, isClientAcknowledge, isInternalSession, isTarget, isTransacted, recover, redeliverUnacknowledgedMessages, redeliverUnacknowledgedMessages, removeConsumer, removeProducer, removeTemporaryDestination, run, send, setDeliveryListener, setInternalSession, setMessageListener, setSessionConsumerDispatchState, setSessionId, setStartTime, setTransactionContext, start, stop, unsubscribe |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.jms.Session |
close, createBytesMessage, createConsumer, createConsumer, createConsumer, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createStreamMessage, createTextMessage, createTextMessage, getAcknowledgeMode, getMessageListener, recover, run, setMessageListener |
Methods inherited from interface javax.jms.Session |
close, createBytesMessage, createConsumer, createConsumer, createConsumer, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createStreamMessage, createTextMessage, createTextMessage, getAcknowledgeMode, getMessageListener, recover, run, setMessageListener |
Methods inherited from interface javax.jms.Session |
close, createBytesMessage, createConsumer, createConsumer, createConsumer, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createStreamMessage, createTextMessage, createTextMessage, getAcknowledgeMode, getMessageListener, recover, run, setMessageListener |
Methods inherited from interface javax.jms.Session |
close, createBytesMessage, createConsumer, createConsumer, createConsumer, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createStreamMessage, createTextMessage, createTextMessage, getAcknowledgeMode, getMessageListener, recover, run, setMessageListener |
ActiveMQXASession
public ActiveMQXASession(ActiveMQXAConnection theConnection,
int theAcknowlegeMode)
throws JMSException
- Throws:
JMSException
getTransacted
public boolean getTransacted()
throws JMSException
- Description copied from class:
ActiveMQSession
- Indicates whether the session is in transacted mode.
- Specified by:
getTransacted
in interface Session
- Specified by:
getTransacted
in interface XASession
- Overrides:
getTransacted
in class ActiveMQSession
- Returns:
- true if the session is in transacted mode
- Throws:
JMSException
- if there is some internal error.
rollback
public void rollback()
throws JMSException
- Description copied from class:
ActiveMQSession
- Rolls back any messages done in this transaction and releases any locks currently held.
- Specified by:
rollback
in interface Session
- Specified by:
rollback
in interface XASession
- Overrides:
rollback
in class ActiveMQSession
- 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 JMSException
- Description copied from class:
ActiveMQSession
- Commits all messages done in this transaction and releases any locks currently held.
- Specified by:
commit
in interface Session
- Specified by:
commit
in interface XASession
- Overrides:
commit
in class ActiveMQSession
- Throws:
JMSException
- if the JMS provider fails to commit the transaction due to some internal error.
TransactionRolledBackException
- if the transaction is rolled back due to some internal error during
commit.
IllegalStateException
- if the method is not called by a transacted session.
getSession
public Session getSession()
throws JMSException
- Specified by:
getSession
in interface XASession
- Throws:
JMSException
getXAResource
public XAResource getXAResource()
- Specified by:
getXAResource
in interface XASession
getQueueSession
public QueueSession getQueueSession()
throws JMSException
- Specified by:
getQueueSession
in interface XAQueueSession
- Throws:
JMSException
getTopicSession
public TopicSession getTopicSession()
throws JMSException
- Specified by:
getTopicSession
in interface XATopicSession
- Throws:
JMSException
doStartTransaction
protected void doStartTransaction()
throws JMSException
- This is called before transacted work is done by
the session. XA Work can only be done when this
XA resource is associated with an Xid.
- Overrides:
doStartTransaction
in class ActiveMQSession
- Throws:
JMSException
- not associated with an Xid
Copyright © 2004-2010 Protique, Ltd.. All Rights Reserved.