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

Queue 如何在不使用数据库的情况下将消息存储在JMS队列中?,queue,jms,message-driven-bean,message-listener,Queue,Jms,Message Driven Bean,Message Listener,我已经使用Servlet将消息发送到JMS队列; 这个队列有一个消息侦听器 但我不会在任何地方使用这些信息; 但是当我使用WebLogic管理控制台检查队列中的消息时;它不显示任何消息,尽管它指示总共有20条消息。 请告诉我如何将发送的消息保存在JMS队列中?? 任何指导或建议都是非常值得赞赏的。 谢谢大家! 我不是WebLogic专家,但一般来说: 消息由JMS提供程序保存,直到被使用为止。因此,您不需要做任何事情来将这些消息保存到JMS队列中 消息侦听器可能已经使用了这些消息,并且管理控制台

我已经使用Servlet将消息发送到JMS队列; 这个队列有一个消息侦听器 但我不会在任何地方使用这些信息; 但是当我使用WebLogic管理控制台检查队列中的消息时;它不显示任何消息,尽管它指示总共有20条消息。 请告诉我如何将发送的消息保存在JMS队列中?? 任何指导或建议都是非常值得赞赏的。
谢谢大家!

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

消息由JMS提供程序保存,直到被使用为止。因此,您不需要做任何事情来将这些消息保存到JMS队列中

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

更新

发送持久消息的示例。将DeliverMode设置为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);

那么,你知道我如何将这些消息保存在队列中吗;我不想消耗这些信息;只是想让他们在队列里??看起来我之前不清楚。让我重申一下:一旦应用程序成功地将消息发送给JMS提供者(在您的例子中是WebLogic),消息将由JMS提供者WebLogic保存在这里,直到消费者收到消息为止。您不需要做任何事情。@Shashi仅当消息是持久的,否则,如果提供程序崩溃,内存中的消息将丢失;默认情况下,持久消息存储在磁盘上。True。因为问题没有提到JMS提供程序崩溃,所以我没有提到这一点。@user3462765 MDB是消费者,所以只要它在侦听队列,消息就会从队列中被消费;禁用MDB并仅发送到队列,消息将保留在队列上