Oracle AQ同一消息传递两次

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

我创建了具有属性的队列: – multiple_consumers =>假

JMS消费者正在使用CLIENT_ACKNOWLEDGE模式

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

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

相关文章

数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库等待会话暴增...
(一)问题背景最近在对一个大约200万行数据的表查看执行计划时,发现存在异常,理论上应该返回100多万...
(一)删除备份--DELETE命令用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操作时,会在RM...
(1)DRA介绍 数据恢复顾问(Data Recovery Advise)是一个诊断和修复数据库的工具,DRA能够修复数据文...
RMAN(Recovery Manager)是Oracle恢复管理器的简称,是集数据库备份(backup)、修复(restore)和恢复...
(1)备份对象 可以使用RMAN进行的备份对象如下: --整个数据库:备份所有的数据文件和控制文件; --数...