我是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编写了一个侦听器。当我启动监听器时,它会等待6分钟,然后从队列中收集所有消息。
但我无法告诉MY_QUEUE_TABLE消息已被消耗。因为我想要一个多个消费者队列,我认为这些消息应该坚持下去。但是,Oracle AQ如何跟踪每个监听器消耗的消息?
答案 0 :(得分:2)
每个队列都会跟踪并确保所有消费者都已出列。您可以查看实际的队列表以查看有多少消费者使用了消息。检查aq $ _my_queue_table和aq $ _my_queue_table_I以查看消息的状态。