Class ActiveMQConnectionConsumer

  • All Implemented Interfaces:
    javax.jms.ConnectionConsumer, ActiveMQDispatcher

    public class ActiveMQConnectionConsumer
    extends Object
    implements javax.jms.ConnectionConsumer, ActiveMQDispatcher
    For application servers, Connection objects provide a special facility for creating a ConnectionConsumer (optional). The messages it is to consume are specified by a Destination and a message selector. In addition, a ConnectionConsumer must be given a ServerSessionPool to use for processing its messages.

    Normally, when traffic is light, a ConnectionConsumer gets a ServerSession from its pool, loads it with a single message, and starts it. As traffic picks up, messages can back up. If this happens, a ConnectionConsumer can load each ServerSession with more than one message. This reduces the thread context switches and minimizes resource use at the expense of some serialization of message processing.

    See Also:
    Connection.createConnectionConsumer(javax.jms.Destination, java.lang.String, javax.jms.ServerSessionPool, int), Connection.createDurableConnectionConsumer(javax.jms.Topic, java.lang.String, java.lang.String, javax.jms.ServerSessionPool, int), QueueConnection.createConnectionConsumer(javax.jms.Queue, java.lang.String, javax.jms.ServerSessionPool, int), TopicConnection.createConnectionConsumer(javax.jms.Topic, java.lang.String, javax.jms.ServerSessionPool, int), TopicConnection.createDurableConnectionConsumer(javax.jms.Topic, java.lang.String, java.lang.String, javax.jms.ServerSessionPool, int)
    • Constructor Detail

      • ActiveMQConnectionConsumer

        protected ActiveMQConnectionConsumer​(ActiveMQConnection theConnection,
                                             javax.jms.ServerSessionPool theSessionPool,
                                             ConsumerInfo theConsumerInfo)
                                      throws javax.jms.JMSException
        Create a ConnectionConsumer
        Parameters:
        theConnection -
        theSessionPool -
        theConsumerInfo -
        Throws:
        javax.jms.JMSException
    • Method Detail

      • getServerSessionPool

        public javax.jms.ServerSessionPool getServerSessionPool()
                                                         throws javax.jms.JMSException
        Gets the server session pool associated with this connection consumer.
        Specified by:
        getServerSessionPool in interface javax.jms.ConnectionConsumer
        Returns:
        the server session pool used by this connection consumer
        Throws:
        javax.jms.JMSException - if the JMS provider fails to get the server session pool associated with this consumer due to some internal error.
      • close

        public void close()
                   throws javax.jms.JMSException
        Closes the connection consumer.

        Since a provider may allocate some resources on behalf of a connection consumer outside the Java virtual machine, clients should close these resources when they are not needed. Relying on garbage collection to eventually reclaim these resources may not be timely enough.

        Specified by:
        close in interface javax.jms.ConnectionConsumer
        Throws:
        javax.jms.JMSException
      • dispose

        public void dispose()
      • clearMessagesInProgress

        public void clearMessagesInProgress​(AtomicInteger transportInterruptionProcessingComplete)