Class JmsQueueBrowser

  • All Implemented Interfaces:
    AutoCloseable, Enumeration<javax.jms.Message>, javax.jms.QueueBrowser

    public class JmsQueueBrowser
    extends Object
    implements AutoCloseable, javax.jms.QueueBrowser, Enumeration<javax.jms.Message>
    A client uses a QueueBrowser object to look at messages on a queue without removing them.

    The getEnumeration method returns a java.util.Enumeration that is used to scan the queue's messages. It may be an enumeration of the entire content of a queue, or it may contain only the messages matching a message selector.

    Messages may be arriving and expiring while the scan is done. The JMS API does not require the content of an enumeration to be a static snapshot of queue content. Whether these changes are visible or not depends on the JMS provider.

    A QueueBrowser can be created from either a Session or a QueueSession.

    See Also:
    Session.createBrowser(javax.jms.Queue), QueueSession.createBrowser(javax.jms.Queue), QueueBrowser, QueueReceiver
    • Field Detail

      • LOG

        protected static final org.slf4j.Logger LOG
    • Constructor Detail

      • JmsQueueBrowser

        protected JmsQueueBrowser​(JmsSession session,
                                  JmsDestination destination,
                                  String selector)
                           throws javax.jms.JMSException
        Constructor for an JmsQueueBrowser - used internally
        Parameters:
        session - The Session that owns this instance.
        destination - The Destination that will be browsed.
        selector - The selector string used to filter the browsed message.
        Throws:
        javax.jms.JMSException - if an error occurs while creating this instance.
    • Method Detail

      • getEnumeration

        public Enumeration<javax.jms.Message> getEnumeration()
                                                      throws javax.jms.JMSException
        Gets an enumeration for browsing the current queue messages in the order they would be received.
        Specified by:
        getEnumeration in interface javax.jms.QueueBrowser
        Returns:
        an enumeration for browsing the messages
        Throws:
        javax.jms.JMSException - if the JMS provider fails to get the enumeration for this browser due to some internal error.
      • hasMoreElements

        public boolean hasMoreElements()
        Specified by:
        hasMoreElements in interface Enumeration<javax.jms.Message>
        Returns:
        true if more messages to process
      • nextElement

        public javax.jms.Message nextElement()
        Specified by:
        nextElement in interface Enumeration<javax.jms.Message>
        Returns:
        the next message if one exists
        Throws:
        NoSuchElementException - if no more elements are available.
      • close

        public void close()
                   throws javax.jms.JMSException
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface javax.jms.QueueBrowser
        Throws:
        javax.jms.JMSException
      • getQueue

        public javax.jms.Queue getQueue()
                                 throws javax.jms.JMSException
        Gets the queue associated with this queue browser.
        Specified by:
        getQueue in interface javax.jms.QueueBrowser
        Returns:
        the queue
        Throws:
        javax.jms.JMSException - if the JMS provider fails to get the queue associated with this browser due to some internal error.
      • getMessageSelector

        public String getMessageSelector()
                                  throws javax.jms.JMSException
        Specified by:
        getMessageSelector in interface javax.jms.QueueBrowser
        Throws:
        javax.jms.JMSException