我们正在使用 Oracle JMS API 从高级队列中读取消息。我们使用以下代码从队列中读取消息:
MessageConsumer consumer = sess.createConsumer(q);
for (Message m; (m = consumer.receive()) != null;)
{
new Timer().schedule(new QueueExample(m), 0);
}
问题是,从队列中接收到消息后,它并没有完全从队列表中删除,只是将状态字段从 0 更改为 2。这是 Oracle JMS 客户端的默认行为吗?在使用 consumer.receive() 方法从队列中读取消息后,我们希望从队列表中完全删除记录。什么是合适的api方法来做到这一点?