Class RMQSession

  • All Implemented Interfaces:
    jakarta.jms.QueueSession, jakarta.jms.Session, jakarta.jms.TopicSession, java.lang.AutoCloseable, java.lang.Runnable

    public class RMQSession
    extends java.lang.Object
    implements jakarta.jms.Session, jakarta.jms.QueueSession, jakarta.jms.TopicSession
    RabbitMQ implementation of JMS Session
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int CLIENT_INDIVIDUAL_ACKNOWLEDGE
      This value must be the maximum allowed, and contiguous with valid values for acknowledgeMode.
      • Fields inherited from interface jakarta.jms.Session

        AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED
    • Constructor Summary

      Constructors 
      Constructor Description
      RMQSession​(RMQConnection connection, boolean transacted, int onMessageTimeoutMs, int mode, com.rabbitmq.jms.client.Subscriptions subscriptions, com.rabbitmq.jms.client.DelayedMessageService delayedMessageService)
      Creates a session object associated with a connection
      RMQSession​(SessionParams sessionParams)
      Creates a session object associated with a connection
    • Field Detail

      • CLIENT_INDIVIDUAL_ACKNOWLEDGE

        public static final int CLIENT_INDIVIDUAL_ACKNOWLEDGE
        This value must be the maximum allowed, and contiguous with valid values for acknowledgeMode.
        See Also:
        Constant Field Values
    • Constructor Detail

      • RMQSession

        public RMQSession​(SessionParams sessionParams)
                   throws jakarta.jms.JMSException
        Creates a session object associated with a connection
        Parameters:
        sessionParams - parameters for this session
        Throws:
        jakarta.jms.JMSException - if we fail to create a Channel object on the connection, or if the acknowledgement mode is incorrect
      • RMQSession

        public RMQSession​(RMQConnection connection,
                          boolean transacted,
                          int onMessageTimeoutMs,
                          int mode,
                          com.rabbitmq.jms.client.Subscriptions subscriptions,
                          com.rabbitmq.jms.client.DelayedMessageService delayedMessageService)
                   throws jakarta.jms.JMSException
        Creates a session object associated with a connection
        Parameters:
        connection - the connection that we will send data on
        transacted - whether this session is transacted or not
        onMessageTimeoutMs - how long to wait for onMessage to return, in milliseconds
        mode - the (fixed) acknowledgement mode for this session
        subscriptions - the connection's subscriptions, shared with all sessions
        Throws:
        jakarta.jms.JMSException - if we fail to create a Channel object on the connection, or if the acknowledgement mode is incorrect
    • Method Detail

      • 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
      • getTransacted

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

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

        public java.util.List<java.lang.String> getTrustedPackages()
      • setQueueDeclareArguments

        public void setQueueDeclareArguments​(java.util.Map<java.lang.String,​java.lang.Object> queueDeclareArguments)
        Set arguments to be used when declaring a queue while creating a producer.

        Use this method only when you need to customize the creation of an AMQP queue. Note calling this method requires to cast the JMS Session to RMQSession, coupling the code to the JMS implementation. Common usage is to keep this call in one place, not scattered in the application code.

        Parameters:
        queueDeclareArguments -
        Since:
        1.14.0
      • 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
      • recover

        public void recover()
                     throws jakarta.jms.JMSException
        Specified by:
        recover 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
      • run

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

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

        Note: The destination may be null.

        Specified by:
        createProducer in interface jakarta.jms.Session
        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
      • 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:
        java.lang.UnsupportedOperationException - - method not implemented until we support selectors
        jakarta.jms.JMSException
      • 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:
        java.lang.UnsupportedOperationException - - method not implemented until we support selectors
        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
      • 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
      • createBrowser

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

        public jakarta.jms.QueueBrowser createBrowser​(jakarta.jms.Queue queue,
                                                      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
      • 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
      • 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
      • unsubscribe

        public void unsubscribe​(java.lang.String name)
                         throws jakarta.jms.JMSException
        This is only available for topic subscriptions.
        Specified by:
        unsubscribe in interface jakarta.jms.Session
        Specified by:
        unsubscribe in interface jakarta.jms.TopicSession
        Throws:
        jakarta.jms.JMSException
      • 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
      • 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
      • createSender

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

        Note: The queue may be null -- see createProducer(jakarta.jms.Destination).

        Specified by:
        createSender in interface jakarta.jms.QueueSession
        Throws:
        jakarta.jms.JMSException
      • 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
      • 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
      • 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
      • 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
      • 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
      • createSharedConsumer

        public jakarta.jms.MessageConsumer createSharedConsumer​(jakarta.jms.Topic topic,
                                                                java.lang.String sharedSubscriptionName)
        Specified by:
        createSharedConsumer in interface jakarta.jms.Session
      • createSharedConsumer

        public jakarta.jms.MessageConsumer createSharedConsumer​(jakarta.jms.Topic topic,
                                                                java.lang.String sharedSubscriptionName,
                                                                java.lang.String messageSelector)
        Specified by:
        createSharedConsumer in interface jakarta.jms.Session
      • createSharedDurableConsumer

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

        public jakarta.jms.MessageConsumer createSharedDurableConsumer​(jakarta.jms.Topic topic,
                                                                       java.lang.String name,
                                                                       java.lang.String messageSelector)
        Specified by:
        createSharedDurableConsumer in interface jakarta.jms.Session
      • 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
      • 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
      • getReplyToStrategy

        public ReplyToStrategy getReplyToStrategy()
        Gets the reply to strategy that should be followed if as reply to is found on a received message.
        Returns:
        The reply to strategy.
        Since:
        2.9.0