Class ActiveMQSession
- java.lang.Object
-
- org.apache.activemq.artemis.jms.client.ActiveMQSession
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.lang.Runnable
,javax.jms.QueueSession
,javax.jms.Session
,javax.jms.TopicSession
- Direct Known Subclasses:
ActiveMQXASession
public class ActiveMQSession extends java.lang.Object implements javax.jms.QueueSession, javax.jms.TopicSession
ActiveMQ Artemis implementation of a JMS Session.
Note that we *do not* support JMS ASF (Application Server Facilities) optional constructs such as ConnectionConsumer
-
-
Field Summary
Fields Modifier and Type Field Description static int
TYPE_GENERIC_SESSION
static int
TYPE_QUEUE_SESSION
static int
TYPE_TOPIC_SESSION
-
Constructor Summary
Constructors Modifier Constructor Description protected
ActiveMQSession(ConnectionFactoryOptions options, ActiveMQConnection connection, boolean transacted, boolean xa, int ackMode, boolean cacheDestination, boolean enable1xPrefixes, ClientSession session, int sessionType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
ackAllConsumers()
void
close()
void
commit()
javax.jms.QueueBrowser
createBrowser(javax.jms.Queue queue)
javax.jms.QueueBrowser
createBrowser(javax.jms.Queue queue, java.lang.String filterString)
javax.jms.BytesMessage
createBytesMessage()
javax.jms.MessageConsumer
createConsumer(javax.jms.Destination destination)
javax.jms.MessageConsumer
createConsumer(javax.jms.Destination destination, java.lang.String messageSelector)
javax.jms.MessageConsumer
createConsumer(javax.jms.Destination destination, java.lang.String messageSelector, boolean noLocal)
javax.jms.MessageConsumer
createDurableConsumer(javax.jms.Topic topic, java.lang.String name)
javax.jms.MessageConsumer
createDurableConsumer(javax.jms.Topic topic, java.lang.String name, java.lang.String messageSelector, boolean noLocal)
javax.jms.TopicSubscriber
createDurableSubscriber(javax.jms.Topic topic, java.lang.String name)
javax.jms.TopicSubscriber
createDurableSubscriber(javax.jms.Topic topic, java.lang.String name, java.lang.String messageSelector, boolean noLocal)
javax.jms.MapMessage
createMapMessage()
javax.jms.Message
createMessage()
javax.jms.ObjectMessage
createObjectMessage()
javax.jms.ObjectMessage
createObjectMessage(java.io.Serializable object)
javax.jms.MessageProducer
createProducer(javax.jms.Destination destination)
javax.jms.TopicPublisher
createPublisher(javax.jms.Topic topic)
javax.jms.Queue
createQueue(java.lang.String queueName)
javax.jms.QueueReceiver
createReceiver(javax.jms.Queue queue)
javax.jms.QueueReceiver
createReceiver(javax.jms.Queue queue, java.lang.String messageSelector)
javax.jms.QueueSender
createSender(javax.jms.Queue queue)
javax.jms.MessageConsumer
createSharedConsumer(javax.jms.Topic topic, java.lang.String sharedSubscriptionName)
javax.jms.MessageConsumer
createSharedConsumer(javax.jms.Topic topic, java.lang.String name, java.lang.String messageSelector)
Note: Needs to throw an exception if a subscriptionName is already in use by another topic, or if the messageSelector is different validate multiple subscriptions on the same session.javax.jms.MessageConsumer
createSharedDurableConsumer(javax.jms.Topic topic, java.lang.String name)
javax.jms.MessageConsumer
createSharedDurableConsumer(javax.jms.Topic topic, java.lang.String name, java.lang.String messageSelector)
javax.jms.StreamMessage
createStreamMessage()
javax.jms.TopicSubscriber
createSubscriber(javax.jms.Topic topic)
javax.jms.TopicSubscriber
createSubscriber(javax.jms.Topic topic, java.lang.String messageSelector, boolean noLocal)
javax.jms.TemporaryQueue
createTemporaryQueue()
javax.jms.TemporaryTopic
createTemporaryTopic()
javax.jms.TextMessage
createTextMessage()
javax.jms.TextMessage
createTextMessage(java.lang.String text)
javax.jms.Topic
createTopic(java.lang.String topicName)
void
deleteTemporaryQueue(ActiveMQDestination tempQueue)
void
deleteTemporaryTopic(ActiveMQDestination tempTopic)
int
getAcknowledgeMode()
ActiveMQConnection
getConnection()
ClientSession
getCoreSession()
java.lang.String
getDeserializationBlackList()
java.lang.String
getDeserializationWhiteList()
javax.jms.MessageListener
getMessageListener()
javax.jms.QueueSession
getQueueSession()
javax.jms.Session
getSession()
javax.jms.TopicSession
getTopicSession()
boolean
getTransacted()
javax.transaction.xa.XAResource
getXAResource()
protected javax.jms.Queue
internalCreateQueue(java.lang.String queueName)
protected ActiveMQQueue
internalCreateQueueCompatibility(java.lang.String queueName)
protected javax.jms.Topic
internalCreateTopic(java.lang.String topicName, boolean retry)
boolean
isEnable1xPrefixes()
boolean
isRecoverCalled()
boolean
isXA()
void
recover()
void
removeConsumer(ActiveMQMessageConsumer consumer)
void
rollback()
void
run()
void
setMessageListener(javax.jms.MessageListener listener)
void
setRecoverCalled(boolean recoverCalled)
void
start()
void
stop()
java.lang.String
toString()
void
unsubscribe(java.lang.String name)
-
-
-
Field Detail
-
TYPE_GENERIC_SESSION
public static final int TYPE_GENERIC_SESSION
- See Also:
- Constant Field Values
-
TYPE_QUEUE_SESSION
public static final int TYPE_QUEUE_SESSION
- See Also:
- Constant Field Values
-
TYPE_TOPIC_SESSION
public static final int TYPE_TOPIC_SESSION
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ActiveMQSession
protected ActiveMQSession(ConnectionFactoryOptions options, ActiveMQConnection connection, boolean transacted, boolean xa, int ackMode, boolean cacheDestination, boolean enable1xPrefixes, ClientSession session, int sessionType)
-
-
Method Detail
-
createBytesMessage
public javax.jms.BytesMessage createBytesMessage() throws javax.jms.JMSException
- Specified by:
createBytesMessage
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createMapMessage
public javax.jms.MapMessage createMapMessage() throws javax.jms.JMSException
- Specified by:
createMapMessage
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createMessage
public javax.jms.Message createMessage() throws javax.jms.JMSException
- Specified by:
createMessage
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createObjectMessage
public javax.jms.ObjectMessage createObjectMessage() throws javax.jms.JMSException
- Specified by:
createObjectMessage
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createObjectMessage
public javax.jms.ObjectMessage createObjectMessage(java.io.Serializable object) throws javax.jms.JMSException
- Specified by:
createObjectMessage
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createStreamMessage
public javax.jms.StreamMessage createStreamMessage() throws javax.jms.JMSException
- Specified by:
createStreamMessage
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createTextMessage
public javax.jms.TextMessage createTextMessage() throws javax.jms.JMSException
- Specified by:
createTextMessage
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createTextMessage
public javax.jms.TextMessage createTextMessage(java.lang.String text) throws javax.jms.JMSException
- Specified by:
createTextMessage
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
getTransacted
public boolean getTransacted() throws javax.jms.JMSException
- Specified by:
getTransacted
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
getAcknowledgeMode
public int getAcknowledgeMode() throws javax.jms.JMSException
- Specified by:
getAcknowledgeMode
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
isXA
public boolean isXA()
-
commit
public void commit() throws javax.jms.JMSException
- Specified by:
commit
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
rollback
public void rollback() throws javax.jms.JMSException
- Specified by:
rollback
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
close
public void close() throws javax.jms.JMSException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
recover
public void recover() throws javax.jms.JMSException
- Specified by:
recover
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
getMessageListener
public javax.jms.MessageListener getMessageListener() throws javax.jms.JMSException
- Specified by:
getMessageListener
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
setMessageListener
public void setMessageListener(javax.jms.MessageListener listener) throws javax.jms.JMSException
- Specified by:
setMessageListener
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
run
public void run()
- Specified by:
run
in interfacejava.lang.Runnable
- Specified by:
run
in interfacejavax.jms.Session
-
createProducer
public javax.jms.MessageProducer createProducer(javax.jms.Destination destination) throws javax.jms.JMSException
- Specified by:
createProducer
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createConsumer
public javax.jms.MessageConsumer createConsumer(javax.jms.Destination destination) throws javax.jms.JMSException
- Specified by:
createConsumer
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createConsumer
public javax.jms.MessageConsumer createConsumer(javax.jms.Destination destination, java.lang.String messageSelector) throws javax.jms.JMSException
- Specified by:
createConsumer
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createConsumer
public javax.jms.MessageConsumer createConsumer(javax.jms.Destination destination, java.lang.String messageSelector, boolean noLocal) throws javax.jms.JMSException
- Specified by:
createConsumer
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createQueue
public javax.jms.Queue createQueue(java.lang.String queueName) throws javax.jms.JMSException
- Specified by:
createQueue
in interfacejavax.jms.QueueSession
- Specified by:
createQueue
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
internalCreateQueue
protected javax.jms.Queue internalCreateQueue(java.lang.String queueName) throws org.apache.activemq.artemis.api.core.ActiveMQException, javax.jms.JMSException
- Throws:
org.apache.activemq.artemis.api.core.ActiveMQException
javax.jms.JMSException
-
internalCreateQueueCompatibility
protected ActiveMQQueue internalCreateQueueCompatibility(java.lang.String queueName) throws org.apache.activemq.artemis.api.core.ActiveMQException, javax.jms.JMSException
- Throws:
org.apache.activemq.artemis.api.core.ActiveMQException
javax.jms.JMSException
-
createTopic
public javax.jms.Topic createTopic(java.lang.String topicName) throws javax.jms.JMSException
- Specified by:
createTopic
in interfacejavax.jms.Session
- Specified by:
createTopic
in interfacejavax.jms.TopicSession
- Throws:
javax.jms.JMSException
-
internalCreateTopic
protected javax.jms.Topic internalCreateTopic(java.lang.String topicName, boolean retry) throws org.apache.activemq.artemis.api.core.ActiveMQException, javax.jms.JMSException
- Throws:
org.apache.activemq.artemis.api.core.ActiveMQException
javax.jms.JMSException
-
createDurableSubscriber
public javax.jms.TopicSubscriber createDurableSubscriber(javax.jms.Topic topic, java.lang.String name) throws javax.jms.JMSException
- Specified by:
createDurableSubscriber
in interfacejavax.jms.Session
- Specified by:
createDurableSubscriber
in interfacejavax.jms.TopicSession
- Throws:
javax.jms.JMSException
-
createDurableSubscriber
public javax.jms.TopicSubscriber createDurableSubscriber(javax.jms.Topic topic, java.lang.String name, java.lang.String messageSelector, boolean noLocal) throws javax.jms.JMSException
- Specified by:
createDurableSubscriber
in interfacejavax.jms.Session
- Specified by:
createDurableSubscriber
in interfacejavax.jms.TopicSession
- Throws:
javax.jms.JMSException
-
createSharedConsumer
public javax.jms.MessageConsumer createSharedConsumer(javax.jms.Topic topic, java.lang.String sharedSubscriptionName) throws javax.jms.JMSException
- Specified by:
createSharedConsumer
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createSharedConsumer
public javax.jms.MessageConsumer createSharedConsumer(javax.jms.Topic topic, java.lang.String name, java.lang.String messageSelector) throws javax.jms.JMSException
Note: Needs to throw an exception if a subscriptionName is already in use by another topic, or if the messageSelector is different validate multiple subscriptions on the same session. validate multiple subscriptions on different sessions validate failure in one connection while another connection stills fine. Validate different filters in different possible scenarios- Specified by:
createSharedConsumer
in interfacejavax.jms.Session
- Parameters:
topic
-name
-messageSelector
-- Returns:
- Throws:
javax.jms.JMSException
-
createDurableConsumer
public javax.jms.MessageConsumer createDurableConsumer(javax.jms.Topic topic, java.lang.String name) throws javax.jms.JMSException
- Specified by:
createDurableConsumer
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createDurableConsumer
public javax.jms.MessageConsumer createDurableConsumer(javax.jms.Topic topic, java.lang.String name, java.lang.String messageSelector, boolean noLocal) throws javax.jms.JMSException
- Specified by:
createDurableConsumer
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createSharedDurableConsumer
public javax.jms.MessageConsumer createSharedDurableConsumer(javax.jms.Topic topic, java.lang.String name) throws javax.jms.JMSException
- Specified by:
createSharedDurableConsumer
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createSharedDurableConsumer
public javax.jms.MessageConsumer createSharedDurableConsumer(javax.jms.Topic topic, java.lang.String name, java.lang.String messageSelector) throws javax.jms.JMSException
- Specified by:
createSharedDurableConsumer
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
getDeserializationBlackList
public java.lang.String getDeserializationBlackList()
-
getDeserializationWhiteList
public java.lang.String getDeserializationWhiteList()
-
ackAllConsumers
public void ackAllConsumers() throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
createBrowser
public javax.jms.QueueBrowser createBrowser(javax.jms.Queue queue) throws javax.jms.JMSException
- Specified by:
createBrowser
in interfacejavax.jms.QueueSession
- Specified by:
createBrowser
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createBrowser
public javax.jms.QueueBrowser createBrowser(javax.jms.Queue queue, java.lang.String filterString) throws javax.jms.JMSException
- Specified by:
createBrowser
in interfacejavax.jms.QueueSession
- Specified by:
createBrowser
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createTemporaryQueue
public javax.jms.TemporaryQueue createTemporaryQueue() throws javax.jms.JMSException
- Specified by:
createTemporaryQueue
in interfacejavax.jms.QueueSession
- Specified by:
createTemporaryQueue
in interfacejavax.jms.Session
- Throws:
javax.jms.JMSException
-
createTemporaryTopic
public javax.jms.TemporaryTopic createTemporaryTopic() throws javax.jms.JMSException
- Specified by:
createTemporaryTopic
in interfacejavax.jms.Session
- Specified by:
createTemporaryTopic
in interfacejavax.jms.TopicSession
- Throws:
javax.jms.JMSException
-
unsubscribe
public void unsubscribe(java.lang.String name) throws javax.jms.JMSException
- Specified by:
unsubscribe
in interfacejavax.jms.Session
- Specified by:
unsubscribe
in interfacejavax.jms.TopicSession
- Throws:
javax.jms.JMSException
-
getSession
public javax.jms.Session getSession() throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
getXAResource
public javax.transaction.xa.XAResource getXAResource()
-
createReceiver
public javax.jms.QueueReceiver createReceiver(javax.jms.Queue queue, java.lang.String messageSelector) throws javax.jms.JMSException
- Specified by:
createReceiver
in interfacejavax.jms.QueueSession
- Throws:
javax.jms.JMSException
-
createReceiver
public javax.jms.QueueReceiver createReceiver(javax.jms.Queue queue) throws javax.jms.JMSException
- Specified by:
createReceiver
in interfacejavax.jms.QueueSession
- Throws:
javax.jms.JMSException
-
createSender
public javax.jms.QueueSender createSender(javax.jms.Queue queue) throws javax.jms.JMSException
- Specified by:
createSender
in interfacejavax.jms.QueueSession
- Throws:
javax.jms.JMSException
-
getQueueSession
public javax.jms.QueueSession getQueueSession() throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
createPublisher
public javax.jms.TopicPublisher createPublisher(javax.jms.Topic topic) throws javax.jms.JMSException
- Specified by:
createPublisher
in interfacejavax.jms.TopicSession
- Throws:
javax.jms.JMSException
-
createSubscriber
public javax.jms.TopicSubscriber createSubscriber(javax.jms.Topic topic, java.lang.String messageSelector, boolean noLocal) throws javax.jms.JMSException
- Specified by:
createSubscriber
in interfacejavax.jms.TopicSession
- Throws:
javax.jms.JMSException
-
createSubscriber
public javax.jms.TopicSubscriber createSubscriber(javax.jms.Topic topic) throws javax.jms.JMSException
- Specified by:
createSubscriber
in interfacejavax.jms.TopicSession
- Throws:
javax.jms.JMSException
-
getTopicSession
public javax.jms.TopicSession getTopicSession() throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getCoreSession
public ClientSession getCoreSession()
-
isRecoverCalled
public boolean isRecoverCalled()
-
setRecoverCalled
public void setRecoverCalled(boolean recoverCalled)
-
deleteTemporaryTopic
public void deleteTemporaryTopic(ActiveMQDestination tempTopic) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
deleteTemporaryQueue
public void deleteTemporaryQueue(ActiveMQDestination tempQueue) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
start
public void start() throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
stop
public void stop() throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
removeConsumer
public void removeConsumer(ActiveMQMessageConsumer consumer)
-
isEnable1xPrefixes
public boolean isEnable1xPrefixes()
-
getConnection
public ActiveMQConnection getConnection()
-
-