Oracle AQ相同的消息提供两次

时间:2013-05-10 06:54:19

标签: oracle jms oracle-aq

我在oracle中创建了一个AQ,并用Java编写了2个JMS使用者来监听队列。我有时观察到如果我在队列中产生一些消息;队列中出队消息的计数大于排队的消息数。这意味着一些消息被消耗了两次。

我创建了包含属性的队列: - multiple_consumers => FALSE

JMS消费者正在CLIENT_ACKNOWLEDGE mode

工作

请帮助我了解此类行为的可能原因及其解决方案。因此,我可以复制问题并解决上述问题,并确保排队的消息数等于多个JMS消费者收听同一AQ时出列的消息数。

1 个答案:

答案 0 :(得分:3)

如果没有看到您的代码,CLIENT_ACKNOWLEDGE通常会说您正在手动发送确认。如果您不发送确认,则不会删除该消息,并且代理将在稍后阶段尝试重新发送该消息(例如,当您重新启动连接或类似时)。这可能是您担忧的原因。