【发布时间】: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 如何跟踪每个侦听器消费了哪些消息?
【问题讨论】: