如何在不使用数据库的情况下将消息存储在JMS队列中?

时间:2014-04-28 04:43:34

标签: queue jms message-driven-bean message-listener

我已使用Servlet将消息发送到JMS队列;
并且该队列有消息监听器 但我没有在任何地方使用这些消息;
但是当我使用WebLogic管理控制台检查队列中的消息时;它没有显示任何消息,尽管它表示总共有20条消息 请告诉我如何将已发送的消息保存在JMS队列中? 任何指导或建议都会非常值得注意。 谢谢!

1 个答案:

答案 0 :(得分:0)

我不是WebLogic专家,但一般来说:

消息由JMS提供程序保存,直到消耗完为止。因此,您无需执行任何操作即可将这些消息保存在JMS队列中。

消息侦听器可能已经使用了这些消息,并且管理控制台显示“已处理的消息总数”而不是当前可用的消息?

<强>更新

发送持久消息的示例。将DeliverMode设置为PERSISTENT。使用此生产者发送的所有消息都将是Persistent。

            // Create the destination (Topic or Queue)
            Destination destination = session.createQueue("TESTQ");

            // Create a MessageProducer from the Session to the Topic or Queue
            MessageProducer producer = session.createProducer(destination);
            // We want persistent messages
            producer.setDeliveryMode(DeliveryMode.PERSISTENT);