Package org.apache.activemq.artemis.jms.client

## 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` |

    - ### Fields inherited from interface javax.jms.Session

      `AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED`

  - ### 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)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### 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 interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createMapMessage

          public javax.jms.MapMessage createMapMessage()
                                                throws javax.jms.JMSException

      Specified by:
        `createMapMessage` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createMessage

          public javax.jms.Message createMessage()
                                          throws javax.jms.JMSException

      Specified by:
        `createMessage` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createObjectMessage

          public javax.jms.ObjectMessage createObjectMessage()
                                                      throws javax.jms.JMSException

      Specified by:
        `createObjectMessage` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createObjectMessage

          public javax.jms.ObjectMessage createObjectMessage​(java.io.Serializable object)
                                                      throws javax.jms.JMSException

      Specified by:
        `createObjectMessage` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createStreamMessage

          public javax.jms.StreamMessage createStreamMessage()
                                                      throws javax.jms.JMSException

      Specified by:
        `createStreamMessage` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createTextMessage

          public javax.jms.TextMessage createTextMessage()
                                                  throws javax.jms.JMSException

      Specified by:
        `createTextMessage` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createTextMessage

          public javax.jms.TextMessage createTextMessage​(java.lang.String text)
                                                  throws javax.jms.JMSException

      Specified by:
        `createTextMessage` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### getTransacted

          public boolean getTransacted()
                                throws javax.jms.JMSException

      Specified by:
        `getTransacted` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### getAcknowledgeMode

          public int getAcknowledgeMode()
                                 throws javax.jms.JMSException

      Specified by:
        `getAcknowledgeMode` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### isXA

          public boolean isXA()

    - #### commit

          public void commit()
                      throws javax.jms.JMSException

      Specified by:
        `commit` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### rollback

          public void rollback()
                        throws javax.jms.JMSException

      Specified by:
        `rollback` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### close

          public void close()
                     throws javax.jms.JMSException

      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Specified by:
        `close` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### recover

          public void recover()
                       throws javax.jms.JMSException

      Specified by:
        `recover` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### getMessageListener

          public javax.jms.MessageListener getMessageListener()
                                                       throws javax.jms.JMSException

      Specified by:
        `getMessageListener` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### setMessageListener

          public void setMessageListener​(javax.jms.MessageListener listener)
                                  throws javax.jms.JMSException

      Specified by:
        `setMessageListener` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### run

          public void run()

      Specified by:
        `run` in interface `java.lang.Runnable`
      Specified by:
        `run` in interface `javax.jms.Session`

    - #### createProducer

          public javax.jms.MessageProducer createProducer​(javax.jms.Destination destination)
                                                   throws javax.jms.JMSException

      Specified by:
        `createProducer` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createConsumer

          public javax.jms.MessageConsumer createConsumer​(javax.jms.Destination destination)
                                                   throws javax.jms.JMSException

      Specified by:
        `createConsumer` in interface `javax.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 interface `javax.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 interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createQueue

          public javax.jms.Queue createQueue​(java.lang.String queueName)
                                      throws javax.jms.JMSException

      Specified by:
        `createQueue` in interface `javax.jms.QueueSession`
      Specified by:
        `createQueue` in interface `javax.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 interface `javax.jms.Session`
      Specified by:
        `createTopic` in interface `javax.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 interface `javax.jms.Session`
      Specified by:
        `createDurableSubscriber` in interface `javax.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 interface `javax.jms.Session`
      Specified by:
        `createDurableSubscriber` in interface `javax.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 interface `javax.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 interface `javax.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 interface `javax.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 interface `javax.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 interface `javax.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 interface `javax.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 interface `javax.jms.QueueSession`
      Specified by:
        `createBrowser` in interface `javax.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 interface `javax.jms.QueueSession`
      Specified by:
        `createBrowser` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createTemporaryQueue

          public javax.jms.TemporaryQueue createTemporaryQueue()
                                                        throws javax.jms.JMSException

      Specified by:
        `createTemporaryQueue` in interface `javax.jms.QueueSession`
      Specified by:
        `createTemporaryQueue` in interface `javax.jms.Session`
      Throws:
        `javax.jms.JMSException`

    - #### createTemporaryTopic

          public javax.jms.TemporaryTopic createTemporaryTopic()
                                                        throws javax.jms.JMSException

      Specified by:
        `createTemporaryTopic` in interface `javax.jms.Session`
      Specified by:
        `createTemporaryTopic` in interface `javax.jms.TopicSession`
      Throws:
        `javax.jms.JMSException`

    - #### unsubscribe

          public void unsubscribe​(java.lang.String name)
                           throws javax.jms.JMSException

      Specified by:
        `unsubscribe` in interface `javax.jms.Session`
      Specified by:
        `unsubscribe` in interface `javax.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 interface `javax.jms.QueueSession`
      Throws:
        `javax.jms.JMSException`

    - #### createReceiver

          public javax.jms.QueueReceiver createReceiver​(javax.jms.Queue queue)
                                                 throws javax.jms.JMSException

      Specified by:
        `createReceiver` in interface `javax.jms.QueueSession`
      Throws:
        `javax.jms.JMSException`

    - #### createSender

          public javax.jms.QueueSender createSender​(javax.jms.Queue queue)
                                             throws javax.jms.JMSException

      Specified by:
        `createSender` in interface `javax.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 interface `javax.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 interface `javax.jms.TopicSession`
      Throws:
        `javax.jms.JMSException`

    - #### createSubscriber

          public javax.jms.TopicSubscriber createSubscriber​(javax.jms.Topic topic)
                                                     throws javax.jms.JMSException

      Specified by:
        `createSubscriber` in interface `javax.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 class `java.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()