Package org.apache.activemq
Class ActiveMQXASession
java.lang.Object
org.apache.activemq.ActiveMQSession
org.apache.activemq.ActiveMQXASession
- All Implemented Interfaces:
jakarta.jms.QueueSession
,jakarta.jms.Session
,jakarta.jms.TopicSession
,jakarta.jms.XAQueueSession
,jakarta.jms.XASession
,jakarta.jms.XATopicSession
,AutoCloseable
,Runnable
,ActiveMQDispatcher
,StatsCapable
public class ActiveMQXASession
extends ActiveMQSession
implements jakarta.jms.QueueSession, jakarta.jms.TopicSession, jakarta.jms.XAQueueSession, jakarta.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
Fields inherited from interface jakarta.jms.Session
AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED
-
Constructor Summary
ConstructorDescriptionActiveMQXASession
(ActiveMQXAConnection connection, SessionId sessionId, int theAcknowlegeMode, boolean dispatchAsync) -
Method Summary
Modifier and TypeMethodDescriptionvoid
commit()
Commits all messages done in this transaction and releases any locks currently held.protected void
Send TransactionInfo to indicate transaction has startedjakarta.jms.QueueSession
jakarta.jms.Session
jakarta.jms.TopicSession
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, 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 jakarta.jms.QueueSession
createBrowser, createBrowser, createQueue, createReceiver, createReceiver, createSender, createTemporaryQueue
Methods inherited from interface jakarta.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
Methods inherited from interface jakarta.jms.TopicSession
createDurableSubscriber, createDurableSubscriber, createPublisher, createSubscriber, createSubscriber, createTemporaryTopic, createTopic, unsubscribe
Methods inherited from interface jakarta.jms.XASession
getTransacted
-
Constructor Details
-
ActiveMQXASession
public ActiveMQXASession(ActiveMQXAConnection connection, SessionId sessionId, int theAcknowlegeMode, boolean dispatchAsync) throws jakarta.jms.JMSException - Throws:
jakarta.jms.JMSException
-
-
Method Details
-
rollback
public void rollback() throws jakarta.jms.JMSExceptionDescription copied from class:ActiveMQSession
Rolls back any messages done in this transaction and releases any locks currently held.- Specified by:
rollback
in interfacejakarta.jms.Session
- Specified by:
rollback
in interfacejakarta.jms.XASession
- Overrides:
rollback
in classActiveMQSession
- Throws:
jakarta.jms.JMSException
- if the JMS provider fails to roll back the transaction due to some internal error.jakarta.jms.IllegalStateException
- if the method is not called by a transacted session.
-
commit
public void commit() throws jakarta.jms.JMSExceptionDescription copied from class:ActiveMQSession
Commits all messages done in this transaction and releases any locks currently held.- Specified by:
commit
in interfacejakarta.jms.Session
- Specified by:
commit
in interfacejakarta.jms.XASession
- Overrides:
commit
in classActiveMQSession
- Throws:
jakarta.jms.JMSException
- if the JMS provider fails to commit the transaction due to some internal error.jakarta.jms.TransactionRolledBackException
- if the transaction is rolled back due to some internal error during commit.jakarta.jms.IllegalStateException
- if the method is not called by a transacted session.
-
getSession
public jakarta.jms.Session getSession() throws jakarta.jms.JMSException- Specified by:
getSession
in interfacejakarta.jms.XASession
- Throws:
jakarta.jms.JMSException
-
getXAResource
- Specified by:
getXAResource
in interfacejakarta.jms.XASession
-
getQueueSession
public jakarta.jms.QueueSession getQueueSession() throws jakarta.jms.JMSException- Specified by:
getQueueSession
in interfacejakarta.jms.XAQueueSession
- Throws:
jakarta.jms.JMSException
-
getTopicSession
public jakarta.jms.TopicSession getTopicSession() throws jakarta.jms.JMSException- Specified by:
getTopicSession
in interfacejakarta.jms.XATopicSession
- Throws:
jakarta.jms.JMSException
-
doStartTransaction
protected void doStartTransaction() throws jakarta.jms.JMSExceptionDescription copied from class:ActiveMQSession
Send TransactionInfo to indicate transaction has started- Overrides:
doStartTransaction
in classActiveMQSession
- Throws:
jakarta.jms.JMSException
- if some internal error occurs
-