Package org.apache.activemq
Class ActiveMQXASession
- java.lang.Object
-
- org.apache.activemq.ActiveMQSession
-
- org.apache.activemq.ActiveMQXASession
-
- All Implemented Interfaces:
AutoCloseable,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
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.activemq.ActiveMQSession
ActiveMQSession.DeliveryListener
-
-
Field Summary
-
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, redeliveryGuard, sendMutex, sessionAsyncDispatch, started
-
-
Constructor Summary
Constructors Constructor Description ActiveMQXASession(ActiveMQXAConnection connection, SessionId sessionId, int theAcknowlegeMode, boolean dispatchAsync)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcommit()Commits all messages done in this transaction and releases any locks currently held.protected voiddoStartTransaction()Send TransactionInfo to indicate transaction has startedjavax.jms.QueueSessiongetQueueSession()javax.jms.SessiongetSession()javax.jms.TopicSessiongetTopicSession()XAResourcegetXAResource()voidrollback()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, createDurableConsumer, createDurableConsumer, createDurableSubscriber, createDurableSubscriber, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createPublisher, createQueue, createReceiver, createReceiver, createSender, createSharedConsumer, createSharedConsumer, createSharedDurableConsumer, createSharedDurableConsumer, 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, getTransacted, getTransactionContext, getTransformer, getUnconsumedMessages, hasUncomsumedMessages, isAsyncDispatch, isAutoAcknowledge, isClientAcknowledge, isClosed, isDupsOkAcknowledge, isIndividualAcknowledge, isInUse, isRunning, isSessionAsyncDispatch, isTransacted, recover, redispatch, removeConsumer, removeProducer, run, send, 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.Session
close, createBytesMessage, createConsumer, createConsumer, createConsumer, createDurableConsumer, createDurableConsumer, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createSharedConsumer, createSharedConsumer, createSharedDurableConsumer, createSharedDurableConsumer, createStreamMessage, createTextMessage, createTextMessage, getAcknowledgeMode, getMessageListener, recover, run, setMessageListener
-
-
-
-
Constructor Detail
-
ActiveMQXASession
public ActiveMQXASession(ActiveMQXAConnection connection, SessionId sessionId, int theAcknowlegeMode, boolean dispatchAsync) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
-
Method Detail
-
rollback
public void rollback() throws javax.jms.JMSExceptionDescription copied from class:ActiveMQSessionRolls back any messages done in this transaction and releases any locks currently held.- Specified by:
rollbackin interfacejavax.jms.Session- Specified by:
rollbackin interfacejavax.jms.XASession- Overrides:
rollbackin classActiveMQSession- 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.JMSExceptionDescription copied from class:ActiveMQSessionCommits all messages done in this transaction and releases any locks currently held.- Specified by:
commitin interfacejavax.jms.Session- Specified by:
commitin interfacejavax.jms.XASession- Overrides:
commitin classActiveMQSession- 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:
getSessionin interfacejavax.jms.XASession- Throws:
javax.jms.JMSException
-
getXAResource
public XAResource getXAResource()
- Specified by:
getXAResourcein interfacejavax.jms.XASession
-
getQueueSession
public javax.jms.QueueSession getQueueSession() throws javax.jms.JMSException- Specified by:
getQueueSessionin interfacejavax.jms.XAQueueSession- Throws:
javax.jms.JMSException
-
getTopicSession
public javax.jms.TopicSession getTopicSession() throws javax.jms.JMSException- Specified by:
getTopicSessionin interfacejavax.jms.XATopicSession- Throws:
javax.jms.JMSException
-
doStartTransaction
protected void doStartTransaction() throws javax.jms.JMSExceptionDescription copied from class:ActiveMQSessionSend TransactionInfo to indicate transaction has started- Overrides:
doStartTransactionin classActiveMQSession- Throws:
javax.jms.JMSException- if some internal error occurs
-
-