Class RMQConnection

  • All Implemented Interfaces:
    jakarta.jms.Connection, jakarta.jms.QueueConnection, jakarta.jms.TopicConnection, java.lang.AutoCloseable

    public class RMQConnection
    extends java.lang.Object
    implements jakarta.jms.Connection, jakarta.jms.QueueConnection, jakarta.jms.TopicConnection
    Implementation of the Connection, QueueConnection and TopicConnection interfaces. A RMQConnection object holds a list of RMQSession objects as well as the actual {link com.rabbitmq.client.Connection} object that represents the TCP connection to the RabbitMQ broker.

    This implementation also holds a reference to the executor service that is used by the connection so that we can pause incoming messages.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int NO_CHANNEL_QOS  
    • Constructor Summary

      Constructors 
      Constructor Description
      RMQConnection​(com.rabbitmq.client.Connection rabbitConnection)
      Creates an RMQConnection object, with default termination timeout of 15 seconds, a 2 seconds timeout for onMessage, and unlimited reads from QueueBrowsers.
      RMQConnection​(com.rabbitmq.client.Connection rabbitConnection, long terminationTimeout, int queueBrowserReadMax, int onMessageTimeoutMs)
      Creates an RMQConnection object.
      RMQConnection​(ConnectionParams connectionParams)
      Creates an RMQConnection object.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      From the JMS Spec:
      jakarta.jms.ConnectionConsumer createConnectionConsumer​(jakarta.jms.Destination destination, java.lang.String messageSelector, jakarta.jms.ServerSessionPool sessionPool, int maxMessages)  
      jakarta.jms.ConnectionConsumer createConnectionConsumer​(jakarta.jms.Queue queue, java.lang.String messageSelector, jakarta.jms.ServerSessionPool sessionPool, int maxMessages)  
      jakarta.jms.ConnectionConsumer createConnectionConsumer​(jakarta.jms.Topic topic, java.lang.String messageSelector, jakarta.jms.ServerSessionPool sessionPool, int maxMessages)  
      jakarta.jms.ConnectionConsumer createDurableConnectionConsumer​(jakarta.jms.Topic topic, java.lang.String subscriptionName, java.lang.String messageSelector, jakarta.jms.ServerSessionPool sessionPool, int maxMessages)  
      jakarta.jms.QueueSession createQueueSession​(boolean transacted, int acknowledgeMode)
      jakarta.jms.Session createSession()  
      jakarta.jms.Session createSession​(boolean transacted, int acknowledgeMode)
      jakarta.jms.Session createSession​(int sessionMode)  
      jakarta.jms.ConnectionConsumer createSharedConnectionConsumer​(jakarta.jms.Topic topic, java.lang.String subscriptionName, java.lang.String messageSelector, jakarta.jms.ServerSessionPool sessionPool, int maxMessages)  
      jakarta.jms.ConnectionConsumer createSharedDurableConnectionConsumer​(jakarta.jms.Topic topic, java.lang.String subscriptionName, java.lang.String messageSelector, jakarta.jms.ServerSessionPool sessionPool, int maxMessages)  
      jakarta.jms.TopicSession createTopicSession​(boolean transacted, int acknowledgeMode)
      java.lang.String getClientID()
      jakarta.jms.ExceptionListener getExceptionListener()
      jakarta.jms.ConnectionMetaData getMetaData()
      ReplyToStrategy getReplyToStrategy()
      Gets the reply to strategy that should be followed if as reply to is found on a received message.
      java.util.List<java.lang.String> getTrustedPackages()  
      boolean isStopped()  
      void setClientID​(java.lang.String clientID)
      void setExceptionListener​(jakarta.jms.ExceptionListener listener)
      void start()
      void stop()
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • RMQConnection

        public RMQConnection​(ConnectionParams connectionParams)
        Creates an RMQConnection object.
        Parameters:
        connectionParams - parameters for this connection
      • RMQConnection

        public RMQConnection​(com.rabbitmq.client.Connection rabbitConnection,
                             long terminationTimeout,
                             int queueBrowserReadMax,
                             int onMessageTimeoutMs)
        Creates an RMQConnection object.
        Parameters:
        rabbitConnection - the TCP connection wrapper to the RabbitMQ broker
        terminationTimeout - timeout for close in milliseconds
        queueBrowserReadMax - maximum number of messages to read from a QueueBrowser (before filtering)
        onMessageTimeoutMs - how long to wait for onMessage to return, in milliseconds
      • RMQConnection

        public RMQConnection​(com.rabbitmq.client.Connection rabbitConnection)
        Creates an RMQConnection object, with default termination timeout of 15 seconds, a 2 seconds timeout for onMessage, and unlimited reads from QueueBrowsers.
        Parameters:
        rabbitConnection - the TCP connection wrapper to the RabbitMQ broker
    • Method Detail

      • createSession

        public jakarta.jms.Session createSession​(boolean transacted,
                                                 int acknowledgeMode)
                                          throws jakarta.jms.JMSException
        Specified by:
        createSession in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • getClientID

        public java.lang.String getClientID()
                                     throws jakarta.jms.JMSException
        Specified by:
        getClientID in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • setClientID

        public void setClientID​(java.lang.String clientID)
                         throws jakarta.jms.JMSException
        Specified by:
        setClientID in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • getTrustedPackages

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

        public jakarta.jms.ConnectionMetaData getMetaData()
                                                   throws jakarta.jms.JMSException
        Specified by:
        getMetaData in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • getExceptionListener

        public jakarta.jms.ExceptionListener getExceptionListener()
                                                           throws jakarta.jms.JMSException
        Specified by:
        getExceptionListener in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • setExceptionListener

        public void setExceptionListener​(jakarta.jms.ExceptionListener listener)
                                  throws jakarta.jms.JMSException
        Specified by:
        setExceptionListener in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • start

        public void start()
                   throws jakarta.jms.JMSException
        Specified by:
        start in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • stop

        public void stop()
                  throws jakarta.jms.JMSException
        Specified by:
        stop in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • isStopped

        public boolean isStopped()
        Returns:
        true if this connection is in a stopped state
      • close

        public void close()
                   throws jakarta.jms.JMSException
        From the JMS Spec:

        This call blocks until a receive or message listener in progress has completed. A blocked message consumer receive call returns null when this message consumer is closed.

        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • createTopicSession

        public jakarta.jms.TopicSession createTopicSession​(boolean transacted,
                                                           int acknowledgeMode)
                                                    throws jakarta.jms.JMSException
        Specified by:
        createTopicSession in interface jakarta.jms.TopicConnection
        Throws:
        jakarta.jms.JMSException
      • createConnectionConsumer

        public jakarta.jms.ConnectionConsumer createConnectionConsumer​(jakarta.jms.Topic topic,
                                                                       java.lang.String messageSelector,
                                                                       jakarta.jms.ServerSessionPool sessionPool,
                                                                       int maxMessages)
                                                                throws jakarta.jms.JMSException
        Specified by:
        createConnectionConsumer in interface jakarta.jms.TopicConnection
        Throws:
        java.lang.UnsupportedOperationException - - optional method not implemented
        jakarta.jms.JMSException
      • createQueueSession

        public jakarta.jms.QueueSession createQueueSession​(boolean transacted,
                                                           int acknowledgeMode)
                                                    throws jakarta.jms.JMSException
        Specified by:
        createQueueSession in interface jakarta.jms.QueueConnection
        Throws:
        jakarta.jms.JMSException
      • createConnectionConsumer

        public jakarta.jms.ConnectionConsumer createConnectionConsumer​(jakarta.jms.Queue queue,
                                                                       java.lang.String messageSelector,
                                                                       jakarta.jms.ServerSessionPool sessionPool,
                                                                       int maxMessages)
                                                                throws jakarta.jms.JMSException
        Specified by:
        createConnectionConsumer in interface jakarta.jms.QueueConnection
        Throws:
        java.lang.UnsupportedOperationException - - optional method not implemented
        jakarta.jms.JMSException
      • createConnectionConsumer

        public jakarta.jms.ConnectionConsumer createConnectionConsumer​(jakarta.jms.Destination destination,
                                                                       java.lang.String messageSelector,
                                                                       jakarta.jms.ServerSessionPool sessionPool,
                                                                       int maxMessages)
        Specified by:
        createConnectionConsumer in interface jakarta.jms.Connection
        Throws:
        java.lang.UnsupportedOperationException - - optional method not implemented
      • createDurableConnectionConsumer

        public jakarta.jms.ConnectionConsumer createDurableConnectionConsumer​(jakarta.jms.Topic topic,
                                                                              java.lang.String subscriptionName,
                                                                              java.lang.String messageSelector,
                                                                              jakarta.jms.ServerSessionPool sessionPool,
                                                                              int maxMessages)
        Specified by:
        createDurableConnectionConsumer in interface jakarta.jms.Connection
        Specified by:
        createDurableConnectionConsumer in interface jakarta.jms.TopicConnection
        Throws:
        java.lang.UnsupportedOperationException - - optional method not implemented
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • createSession

        public jakarta.jms.Session createSession​(int sessionMode)
                                          throws jakarta.jms.JMSException
        Specified by:
        createSession in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • createSession

        public jakarta.jms.Session createSession()
                                          throws jakarta.jms.JMSException
        Specified by:
        createSession in interface jakarta.jms.Connection
        Throws:
        jakarta.jms.JMSException
      • createSharedConnectionConsumer

        public jakarta.jms.ConnectionConsumer createSharedConnectionConsumer​(jakarta.jms.Topic topic,
                                                                             java.lang.String subscriptionName,
                                                                             java.lang.String messageSelector,
                                                                             jakarta.jms.ServerSessionPool sessionPool,
                                                                             int maxMessages)
        Specified by:
        createSharedConnectionConsumer in interface jakarta.jms.Connection
        Throws:
        java.lang.UnsupportedOperationException - - optional method not implemented
      • createSharedDurableConnectionConsumer

        public jakarta.jms.ConnectionConsumer createSharedDurableConnectionConsumer​(jakarta.jms.Topic topic,
                                                                                    java.lang.String subscriptionName,
                                                                                    java.lang.String messageSelector,
                                                                                    jakarta.jms.ServerSessionPool sessionPool,
                                                                                    int maxMessages)
        Specified by:
        createSharedDurableConnectionConsumer in interface jakarta.jms.Connection
        Throws:
        java.lang.UnsupportedOperationException - - optional method not implemented
      • 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