Oracle AQ相同的消息传递两次
我在oracle中创建了一个AQ,并使用Java编写了2个JMS消费者来收听队列。 我有时会观察到,如果我产生一些消息进入队列; 队列中出队消息的数量大于入队消息的数量。 这意味着有些消息会被消耗两次。
我已经创建了属性队列: - multiple_consumers => FALSE
JMS使用者正在以CLIENT_ACKNOWLEDGE mode
工作
请帮助我了解这种行为的可能原因以及解决方案。 因此,我可以复制问题并解决上述问题,并确保在多个JMS使用者侦听同一AQ的情况下,消息队列的数量等于消息的数量。
在没有看到您的代码的情况下, CLIENT_ACKNOWLEDGE
通常会说您正在手动发送确认。 如果您不发送确认,则消息不会被删除,代理将尝试在稍后阶段重新发送消息(如重新启动连接或类似情况时)。 这可能是你担心的原因。