Class JmsSession

  • All Implemented Interfaces:
    jakarta.jms.QueueSession, jakarta.jms.Session, jakarta.jms.TopicSession, java.lang.AutoCloseable, java.lang.Runnable, JmsMessageDispatcher
    Direct Known Subclasses:
    JmsQueueSession, JmsTopicSession

    public class JmsSession
    extends java.lang.Object
    implements java.lang.AutoCloseable, jakarta.jms.Session, jakarta.jms.QueueSession, jakarta.jms.TopicSession, JmsMessageDispatcher
    JMS Session implementation
    • Constructor Detail

      • JmsSession

        protected JmsSession​(JmsConnection connection,
                             JmsSessionId sessionId,
                             int acknowledgementMode)
                      throws jakarta.jms.JMSException
        Throws:
        jakarta.jms.JMSException
    • Method Detail

      • getAcknowledgeMode

        public int getAcknowledgeMode()
                               throws jakarta.jms.JMSException
        Specified by:
        getAcknowledgeMode in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • getTransacted

        public boolean getTransacted()
                              throws jakarta.jms.JMSException
        Specified by:
        getTransacted in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • getMessageListener

        public jakarta.jms.MessageListener getMessageListener()
                                                       throws jakarta.jms.JMSException
        Specified by:
        getMessageListener in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • setMessageListener

        public void setMessageListener​(jakarta.jms.MessageListener listener)
                                throws jakarta.jms.JMSException
        Specified by:
        setMessageListener in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • recover

        public void recover()
                     throws jakarta.jms.JMSException
        Specified by:
        recover in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • commit

        public void commit()
                    throws jakarta.jms.JMSException
        Specified by:
        commit in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • rollback

        public void rollback()
                      throws jakarta.jms.JMSException
        Specified by:
        rollback in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • close

        public void close()
                   throws jakarta.jms.JMSException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • doClose

        protected void doClose()
                        throws jakarta.jms.JMSException
        Shutdown the Session and release all resources. Once completed the Session can request that the Provider destroy the Session and it's child resources.
        Throws:
        jakarta.jms.JMSException - if an internal error occurs during the close operation.
      • shutdown

        protected void shutdown()
                         throws jakarta.jms.JMSException
        This method should terminate all Session resources and prepare for disposal of the Session. It is called either from the Session close method or from the Connection when a close request is made and the Connection wants to cleanup all Session resources. This method should not attempt to send any requests to the Provider as the resources that were associated with this session are either cleaned up by another method in the session or are already gone due to remote close or some other error.
        Throws:
        jakarta.jms.JMSException - if an error occurs while shutting down the session resources.
      • shutdown

        protected boolean shutdown​(java.lang.Throwable cause)
                            throws jakarta.jms.JMSException
        Throws:
        jakarta.jms.JMSException
      • createConsumer

        public jakarta.jms.MessageConsumer createConsumer​(jakarta.jms.Destination destination)
                                                   throws jakarta.jms.JMSException
        Specified by:
        createConsumer in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createConsumer(jakarta.jms.Destination)
      • createConsumer

        public jakarta.jms.MessageConsumer createConsumer​(jakarta.jms.Destination destination,
                                                          java.lang.String messageSelector)
                                                   throws jakarta.jms.JMSException
        Specified by:
        createConsumer in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createConsumer(jakarta.jms.Destination, java.lang.String)
      • createConsumer

        public jakarta.jms.MessageConsumer createConsumer​(jakarta.jms.Destination destination,
                                                          java.lang.String messageSelector,
                                                          boolean noLocal)
                                                   throws jakarta.jms.JMSException
        Specified by:
        createConsumer in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createConsumer(jakarta.jms.Destination, java.lang.String, boolean)
      • createReceiver

        public jakarta.jms.QueueReceiver createReceiver​(jakarta.jms.Queue queue)
                                                 throws jakarta.jms.JMSException
        Specified by:
        createReceiver in interface jakarta.jms.QueueSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        QueueSession.createReceiver(jakarta.jms.Queue)
      • createReceiver

        public jakarta.jms.QueueReceiver createReceiver​(jakarta.jms.Queue queue,
                                                        java.lang.String messageSelector)
                                                 throws jakarta.jms.JMSException
        Specified by:
        createReceiver in interface jakarta.jms.QueueSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        QueueSession.createReceiver(jakarta.jms.Queue, java.lang.String)
      • createBrowser

        public jakarta.jms.QueueBrowser createBrowser​(jakarta.jms.Queue destination)
                                               throws jakarta.jms.JMSException
        Specified by:
        createBrowser in interface jakarta.jms.QueueSession
        Specified by:
        createBrowser in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createBrowser(jakarta.jms.Queue)
      • createBrowser

        public jakarta.jms.QueueBrowser createBrowser​(jakarta.jms.Queue destination,
                                                      java.lang.String messageSelector)
                                               throws jakarta.jms.JMSException
        Specified by:
        createBrowser in interface jakarta.jms.QueueSession
        Specified by:
        createBrowser in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createBrowser(jakarta.jms.Queue, java.lang.String)
      • createSubscriber

        public jakarta.jms.TopicSubscriber createSubscriber​(jakarta.jms.Topic topic)
                                                     throws jakarta.jms.JMSException
        Specified by:
        createSubscriber in interface jakarta.jms.TopicSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        TopicSession.createSubscriber(jakarta.jms.Topic)
      • createSubscriber

        public jakarta.jms.TopicSubscriber createSubscriber​(jakarta.jms.Topic topic,
                                                            java.lang.String messageSelector,
                                                            boolean noLocal)
                                                     throws jakarta.jms.JMSException
        Specified by:
        createSubscriber in interface jakarta.jms.TopicSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        TopicSession.createSubscriber(jakarta.jms.Topic, java.lang.String, boolean)
      • createDurableSubscriber

        public jakarta.jms.TopicSubscriber createDurableSubscriber​(jakarta.jms.Topic topic,
                                                                   java.lang.String name)
                                                            throws jakarta.jms.JMSException
        Specified by:
        createDurableSubscriber in interface jakarta.jms.Session
        Specified by:
        createDurableSubscriber in interface jakarta.jms.TopicSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createDurableSubscriber(jakarta.jms.Topic, java.lang.String)
      • createDurableSubscriber

        public jakarta.jms.TopicSubscriber createDurableSubscriber​(jakarta.jms.Topic topic,
                                                                   java.lang.String name,
                                                                   java.lang.String messageSelector,
                                                                   boolean noLocal)
                                                            throws jakarta.jms.JMSException
        Specified by:
        createDurableSubscriber in interface jakarta.jms.Session
        Specified by:
        createDurableSubscriber in interface jakarta.jms.TopicSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createDurableSubscriber(jakarta.jms.Topic, java.lang.String, java.lang.String, boolean)
      • createDurableConsumer

        public jakarta.jms.MessageConsumer createDurableConsumer​(jakarta.jms.Topic topic,
                                                                 java.lang.String name)
                                                          throws jakarta.jms.JMSException
        Specified by:
        createDurableConsumer in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createDurableConsumer(jakarta.jms.Topic, java.lang.String)
      • createDurableConsumer

        public jakarta.jms.MessageConsumer createDurableConsumer​(jakarta.jms.Topic topic,
                                                                 java.lang.String name,
                                                                 java.lang.String messageSelector,
                                                                 boolean noLocal)
                                                          throws jakarta.jms.JMSException
        Specified by:
        createDurableConsumer in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createDurableConsumer(jakarta.jms.Topic, java.lang.String, java.lang.String, boolean)
      • checkClientIDWasSetExplicitly

        protected void checkClientIDWasSetExplicitly()
                                              throws jakarta.jms.IllegalStateException
        Throws:
        jakarta.jms.IllegalStateException
      • unsubscribe

        public void unsubscribe​(java.lang.String name)
                         throws jakarta.jms.JMSException
        Specified by:
        unsubscribe in interface jakarta.jms.Session
        Specified by:
        unsubscribe in interface jakarta.jms.TopicSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.unsubscribe(java.lang.String)
      • createSharedConsumer

        public jakarta.jms.MessageConsumer createSharedConsumer​(jakarta.jms.Topic topic,
                                                                java.lang.String name)
                                                         throws jakarta.jms.JMSException
        Specified by:
        createSharedConsumer in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createSharedConsumer(jakarta.jms.Topic, java.lang.String)
      • createSharedConsumer

        public jakarta.jms.MessageConsumer createSharedConsumer​(jakarta.jms.Topic topic,
                                                                java.lang.String name,
                                                                java.lang.String selector)
                                                         throws jakarta.jms.JMSException
        Specified by:
        createSharedConsumer in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createSharedConsumer(jakarta.jms.Topic, java.lang.String, java.lang.String)
      • createSharedDurableConsumer

        public jakarta.jms.MessageConsumer createSharedDurableConsumer​(jakarta.jms.Topic topic,
                                                                       java.lang.String name)
                                                                throws jakarta.jms.JMSException
        Specified by:
        createSharedDurableConsumer in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createSharedDurableConsumer(jakarta.jms.Topic, java.lang.String)
      • createSharedDurableConsumer

        public jakarta.jms.MessageConsumer createSharedDurableConsumer​(jakarta.jms.Topic topic,
                                                                       java.lang.String name,
                                                                       java.lang.String selector)
                                                                throws jakarta.jms.JMSException
        Specified by:
        createSharedDurableConsumer in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createSharedDurableConsumer(jakarta.jms.Topic, java.lang.String, java.lang.String)
      • createProducer

        public jakarta.jms.MessageProducer createProducer​(jakarta.jms.Destination destination)
                                                   throws jakarta.jms.JMSException
        Specified by:
        createProducer in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createProducer(jakarta.jms.Destination)
      • createSender

        public jakarta.jms.QueueSender createSender​(jakarta.jms.Queue queue)
                                             throws jakarta.jms.JMSException
        Specified by:
        createSender in interface jakarta.jms.QueueSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        QueueSession.createSender(jakarta.jms.Queue)
      • createPublisher

        public jakarta.jms.TopicPublisher createPublisher​(jakarta.jms.Topic topic)
                                                   throws jakarta.jms.JMSException
        Specified by:
        createPublisher in interface jakarta.jms.TopicSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        TopicSession.createPublisher(jakarta.jms.Topic)
      • createBytesMessage

        public jakarta.jms.BytesMessage createBytesMessage()
                                                    throws jakarta.jms.JMSException
        Specified by:
        createBytesMessage in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • createMapMessage

        public jakarta.jms.MapMessage createMapMessage()
                                                throws jakarta.jms.JMSException
        Specified by:
        createMapMessage in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • createMessage

        public jakarta.jms.Message createMessage()
                                          throws jakarta.jms.JMSException
        Specified by:
        createMessage in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • createObjectMessage

        public jakarta.jms.ObjectMessage createObjectMessage()
                                                      throws jakarta.jms.JMSException
        Specified by:
        createObjectMessage in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • createObjectMessage

        public jakarta.jms.ObjectMessage createObjectMessage​(java.io.Serializable object)
                                                      throws jakarta.jms.JMSException
        Specified by:
        createObjectMessage in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • createStreamMessage

        public jakarta.jms.StreamMessage createStreamMessage()
                                                      throws jakarta.jms.JMSException
        Specified by:
        createStreamMessage in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • createTextMessage

        public jakarta.jms.TextMessage createTextMessage()
                                                  throws jakarta.jms.JMSException
        Specified by:
        createTextMessage in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • createTextMessage

        public jakarta.jms.TextMessage createTextMessage​(java.lang.String text)
                                                  throws jakarta.jms.JMSException
        Specified by:
        createTextMessage in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
      • createQueue

        public jakarta.jms.Queue createQueue​(java.lang.String queueName)
                                      throws jakarta.jms.JMSException
        Specified by:
        createQueue in interface jakarta.jms.QueueSession
        Specified by:
        createQueue in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createQueue(java.lang.String)
      • createTopic

        public jakarta.jms.Topic createTopic​(java.lang.String topicName)
                                      throws jakarta.jms.JMSException
        Specified by:
        createTopic in interface jakarta.jms.Session
        Specified by:
        createTopic in interface jakarta.jms.TopicSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createTopic(java.lang.String)
      • createTemporaryQueue

        public jakarta.jms.TemporaryQueue createTemporaryQueue()
                                                        throws jakarta.jms.JMSException
        Specified by:
        createTemporaryQueue in interface jakarta.jms.QueueSession
        Specified by:
        createTemporaryQueue in interface jakarta.jms.Session
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createTemporaryQueue()
      • createTemporaryTopic

        public jakarta.jms.TemporaryTopic createTemporaryTopic()
                                                        throws jakarta.jms.JMSException
        Specified by:
        createTemporaryTopic in interface jakarta.jms.Session
        Specified by:
        createTemporaryTopic in interface jakarta.jms.TopicSession
        Throws:
        jakarta.jms.JMSException
        See Also:
        Session.createTemporaryTopic()
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
        Specified by:
        run in interface jakarta.jms.Session
      • onException

        protected void onException​(java.lang.Exception ex)
      • send

        protected void send​(JmsMessageProducer producer,
                            jakarta.jms.Destination dest,
                            jakarta.jms.Message msg,
                            int deliveryMode,
                            int priority,
                            long timeToLive,
                            boolean disableMsgId,
                            boolean disableTimestamp,
                            long deliveryDelay,
                            jakarta.jms.CompletionListener listener)
                     throws jakarta.jms.JMSException
        Throws:
        jakarta.jms.JMSException
      • isClosed

        public boolean isClosed()
      • isTransacted

        public boolean isTransacted()
        Checks whether the session uses transactions.
        Returns:
        true if the session uses transactions.
      • isClientAcknowledge

        public boolean isClientAcknowledge()
        Checks whether the session used client acknowledgment.
        Returns:
        true if the session uses client acknowledgment.
      • isAutoAcknowledge

        public boolean isAutoAcknowledge()
        Checks whether the session used auto acknowledgment.
        Returns:
        true if the session uses client acknowledgment.
      • isDupsOkAcknowledge

        public boolean isDupsOkAcknowledge()
        Checks whether the session used dup ok acknowledgment.
        Returns:
        true if the session uses client acknowledgment.
      • isNoAcknowledge

        public boolean isNoAcknowledge()
        Checks whether the session uses presettlement for all consumers.
        Returns:
        true if the session is using a presettlement for consumers.
      • isIndividualAcknowledge

        public boolean isIndividualAcknowledge()
        Checks whether the session used individual acknowledgment mode.
        Returns:
        true if the session uses individual acknowledgment.
      • checkClosed

        protected void checkClosed()
                            throws jakarta.jms.IllegalStateException
        Throws:
        jakarta.jms.IllegalStateException
      • checkDestination

        public static void checkDestination​(jakarta.jms.Destination dest)
                                     throws jakarta.jms.InvalidDestinationException
        Throws:
        jakarta.jms.InvalidDestinationException
      • start

        protected void start()
                      throws jakarta.jms.JMSException
        Throws:
        jakarta.jms.JMSException
      • stop

        protected void stop()
                     throws jakarta.jms.JMSException
        Throws:
        jakarta.jms.JMSException
      • isStarted

        protected boolean isStarted()
      • getSessionMode

        protected int getSessionMode()
      • getNextConsumerId

        protected JmsConsumerId getNextConsumerId()
      • getNextProducerId

        protected JmsProducerId getNextProducerId()
      • setTransactionContext

        public void setTransactionContext​(JmsTransactionContext transactionContext)
        Sets the transaction context of the session.
        Parameters:
        transactionContext - provides the means to control a JMS transaction.
      • getTransactionContext

        public JmsTransactionContext getTransactionContext()
        Returns the transaction context of the session.
        Returns:
        transactionContext session's transaction context.
      • onConnectionInterrupted

        protected void onConnectionInterrupted()
      • onConnectionRecovery

        protected void onConnectionRecovery​(Provider provider)
                                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • onConnectionRecovered

        protected void onConnectionRecovered​(Provider provider)
                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • onConnectionRestored

        protected void onConnectionRestored()