OracleAQは初めてです。
私は次のようなテーブルとキューを作成しました:
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は、各リスナーが消費したメッセージをどのように追跡しますか?