【问题标题】:Can we use QueueBrowser just to browse messages in current queue from sender side?我们可以使用 QueueBrowser 从发送方浏览当前队列中的消息吗?
【发布时间】:2015-03-30 19:06:31
【问题描述】:

我是 JMS 队列的新手。请在以下方面给我建议:

我们是否只需要在客户端使用 QueueBrowser.getEnumeration(),就在消费下一条消息之前?或者我们可以从发送方使用它来浏览队列中的消息,我们可以使用队列名称从上下文中检索这些消息?

浏览队列的消息有什么限制吗?因为我从来没有在 QueueBrowser.getEnumeration();一直都是空的!

提前致谢。

【问题讨论】:

    标签: java queue jms messaging


    【解决方案1】:

    QueueBrowser 如名称 Browser 所暗示的那样,如果您想查看队列中的消息而不将其从队列中删除,则需要该名称。另一方面,QueueReceiver 用于接收消息并将其从队列中删除。

    除非有特殊要求,否则不需要使用 QueueBrowser 来检查消息,然后使用 QueueReceiver 来消费消息。您可以按照消息产生的顺序消费消息,也可以使用选择器消费符合特定条件的消息。

    根据您的应用程序设计要求,在发送方或接收方的任何地方使用 QueueBrowser 没有任何限制。

    【讨论】:

    • 谢谢你,沙市!现在我对 Queue & QueueBrowser 有了一些了解。但是,正如我上面提到的,对于我自己创建的队列,我总是从 getEnumeration() 方法中获取空列表。但我从 DLQ 和 Expiry Queue 等默认队列中获取内容。这就是我询问创建/浏览队列所涉及的限制/配置的原因。
    • 我假设您创建的队列中有消息?
    • 是的,队列肯定有消息。我通过 jboss 的管理控制台确认了这一点。虽然控制台显示队列中存在超过 20 条消息,但我无法使用 QueueBrowser 浏览它们。检查这个:stackoverflow.com/questions/28408438/…
    猜你喜欢
    • 1970-01-01
    • 2011-05-14
    • 2012-02-05
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    相关资源
    最近更新 更多