【问题标题】:How to tell in Oracle AQ which messages have been consumed from a multiple consumer queue如何在 Oracle AQ 中判断哪些消息已从多个消费者队列中消费
【发布时间】:2010-11-24 23:21:31
【问题描述】:

我是 Oracle AQ 的新手。

我已经像这样创建了一个表和一个队列:

EXEC dbms_aqadm.create_queue_table(queue_table=>'MY_QUEUE_TABLE',
                                   queue_payload_type=>'sys.aq$_jms_text_message',
                                   multiple_consumers=>TRUE);

EXEC dbms_aqadm.create_queue(queue_name=>'CONTACT_INFO_QUEUE',
                             queue_table=>'MY_QUEUE_TABLE',
                             max_retries=>24,
                             retry_delay=>60,
                             retention_time=>3600);

然后我在 Java 中为队列编写了一个 Listener。当我启动 Listener 时,它会等待 6 分钟,然后从队列中收集所有消息。

但我无法在 MY_QUEUE_TABLE 中判断哪些消息已被消费。因为我想要一个多消费者队列,所以我认为消息应该保留。但是,Oracle AQ 如何跟踪每个侦听器消费了哪些消息?

【问题讨论】:

    标签: oracle jms oracle-aq


    【解决方案1】:

    每个队列都会跟踪并确保所有消费者都已出队。您可以查看实际的队列表以了解有多少消费者已经消费了一条消息。检查 aq$_my_queue_table 和 aq$_my_queue_table_I 以查看消息的状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2015-02-02
      • 2010-11-09
      • 2013-08-08
      • 2021-11-14
      • 2011-02-17
      • 2016-06-21
      相关资源
      最近更新 更多