JMS

  QueueBrowser 是一个专用对象,提供提前浏览 Queue 上的排队消息的功能,而实际上并没有真正消费这些消息。这是点对点消息传送模型的独有特性。从 QueueBrowser 获得消息是该队列中消息的副本,而且并未认为会被消费——它们仅是用于浏览而已。还有,QueueBrowser 并不能保证提供的是队列消息的准确清单。QueueBrowser 包含的仅仅是创建 QueueBrowser 时队列的一个快照或者它的一个副本。队列的内容可能会在创建 QueueBrowser 和查看的时间间隔内发生变化。

Sample Code:

public static void main(String[] args) {
    try {
        Context context = new InitialContext();
        QueueConnectionFactory connFactory = (QueueConnectionFactory) context.lookup("QueueCF");        
        Connection conn = connFactory.createConnection();            
        conn.start();
        Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Queue queue = session.createQueue("hello_queue");

        QueueBrowser browser = session.createBrowser(queue);
        Enumeration<?> messages = browser.getEnumeration();
        while (messages.hasMoreElements()) {
            TextMessage textMsg = (TextMessage) messages.nextElement();
            System.out.println(textMsg);
        }
        
        browser.close();
        conn.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
原文地址:https://www.cnblogs.com/huey/p/4748314.html