org.apache.activemq
Class ActiveMQXASession
java.lang.Object
org.apache.activemq.ActiveMQSession
org.apache.activemq.ActiveMQXASession
- All Implemented Interfaces:
- java.lang.Runnable, javax.jms.QueueSession, javax.jms.Session, javax.jms.TopicSession, javax.jms.XAQueueSession, javax.jms.XASession, javax.jms.XATopicSession, ActiveMQDispatcher, StatsCapable
public class ActiveMQXASession
- extends ActiveMQSession
- implements javax.jms.QueueSession, javax.jms.TopicSession, javax.jms.XAQueueSession, javax.jms.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.
- See Also:
Session
,
QueueSession
,
TopicSession
,
XASession
Fields inherited from class org.apache.activemq.ActiveMQSession |
acknowledgementMode, asyncDispatch, closed, connection, consumerIdGenerator, consumers, debug, deliveryIdGenerator, executor, INDIVIDUAL_ACKNOWLEDGE, info, MAX_ACK_CONSTANT, producerIdGenerator, producers, sendMutex, sessionAsyncDispatch, started |
Fields inherited from interface javax.jms.Session |
AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED |
Method Summary |
void |
commit()
Commits all messages done in this transaction and releases any locks
currently held. |
protected void |
doStartTransaction()
Send TransactionInfo to indicate transaction has started |
javax.jms.QueueSession |
getQueueSession()
|
javax.jms.Session |
getSession()
|
javax.jms.TopicSession |
getTopicSession()
|
boolean |
getTransacted()
Indicates whether the session is in transacted mode. |
javax.transaction.xa.XAResource |
getXAResource()
|
boolean |
isAutoAcknowledge()
Checks whether the session used auto acknowledgment. |
void |
rollback()
Rolls back any messages done in this transaction and releases any locks
currently held. |
Methods inherited from class org.apache.activemq.ActiveMQSession |
acknowledge, addConsumer, addProducer, asyncSendPacket, checkClosed, checkMessageListener, close, close, configureMessage, createBlobMessage, createBlobMessage, createBlobMessage, createBlobMessage, createBrowser, createBrowser, createBytesMessage, createConsumer, createConsumer, createConsumer, createConsumer, createConsumer, createConsumer, createDurableSubscriber, createDurableSubscriber, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createPublisher, createQueue, createReceiver, createReceiver, createSender, createStreamMessage, createSubscriber, createSubscriber, createTemporaryQueue, createTemporaryTopic, createTextMessage, createTextMessage, createTopic, dispatch, dispose, getAcknowledgeMode, getBlobTransferPolicy, getConnection, getConnectionExecutor, getDeliveryListener, getLastDeliveredSequenceId, getMessageListener, getNextConsumerId, getNextDeliveryId, getNextProducerId, getScheduler, getSessionId, getSessionInfo, getSessionStats, getStats, getTransactionContext, getTransformer, getUnconsumedMessages, hasUncomsumedMessages, isAsyncDispatch, isClientAcknowledge, isClosed, isDupsOkAcknowledge, isIndividualAcknowledge, isInUse, isRunning, isSessionAsyncDispatch, isTransacted, recover, redispatch, removeConsumer, removeProducer, run, send, sendAck, sendAck, setAsyncDispatch, setBlobTransferPolicy, setDeliveryListener, setMessageListener, setOptimizeAcknowledge, setPrefetchSize, setSessionAsyncDispatch, setTransactionContext, setTransformer, start, stop, syncSendPacket, toString, unsubscribe |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface javax.jms.QueueSession |
createBrowser, createBrowser, createQueue, createReceiver, createReceiver, createSender, createTemporaryQueue |
Methods inherited from interface javax.jms.TopicSession |
createDurableSubscriber, createDurableSubscriber, createPublisher, createSubscriber, createSubscriber, createTemporaryTopic, createTopic, unsubscribe |
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 connection,
SessionId sessionId,
int theAcknowlegeMode,
boolean dispatchAsync)
throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
getTransacted
public boolean getTransacted()
throws javax.jms.JMSException
- Description copied from class:
ActiveMQSession
- Indicates whether the session is in transacted mode.
- Specified by:
getTransacted
in interface javax.jms.Session
- Specified by:
getTransacted
in interface javax.jms.XASession
- Overrides:
getTransacted
in class ActiveMQSession
- Returns:
- true if the session is in transacted mode
- Throws:
javax.jms.JMSException
- if there is some internal error.
rollback
public void rollback()
throws javax.jms.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 javax.jms.Session
- Specified by:
rollback
in interface javax.jms.XASession
- Overrides:
rollback
in class ActiveMQSession
- 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
- Description copied from class:
ActiveMQSession
- Commits all messages done in this transaction and releases any locks
currently held.
- Specified by:
commit
in interface javax.jms.Session
- Specified by:
commit
in interface javax.jms.XASession
- Overrides:
commit
in class ActiveMQSession
- Throws:
javax.jms.JMSException
- if the JMS provider fails to commit the transaction
due to some internal error.
javax.jms.TransactionRolledBackException
- if the transaction is rolled back
due to some internal error during commit.
javax.jms.IllegalStateException
- if the method is not called by a
transacted session.
getSession
public javax.jms.Session getSession()
throws javax.jms.JMSException
- Specified by:
getSession
in interface javax.jms.XASession
- Throws:
javax.jms.JMSException
getXAResource
public javax.transaction.xa.XAResource getXAResource()
- Specified by:
getXAResource
in interface javax.jms.XASession
getQueueSession
public javax.jms.QueueSession getQueueSession()
throws javax.jms.JMSException
- Specified by:
getQueueSession
in interface javax.jms.XAQueueSession
- Throws:
javax.jms.JMSException
getTopicSession
public javax.jms.TopicSession getTopicSession()
throws javax.jms.JMSException
- Specified by:
getTopicSession
in interface javax.jms.XATopicSession
- Throws:
javax.jms.JMSException
isAutoAcknowledge
public boolean isAutoAcknowledge()
- Description copied from class:
ActiveMQSession
- Checks whether the session used auto acknowledgment.
- Overrides:
isAutoAcknowledge
in class ActiveMQSession
- Returns:
- true - if the session uses client acknowledgment.
doStartTransaction
protected void doStartTransaction()
throws javax.jms.JMSException
- Description copied from class:
ActiveMQSession
- Send TransactionInfo to indicate transaction has started
- Overrides:
doStartTransaction
in class ActiveMQSession
- Throws:
javax.jms.JMSException
- if some internal error occurs
Copyright © 2005-2012. All Rights Reserved.