例如,我有一个带有 3 条消息的异常高级队列。如果我尝试将它们出队,它工作正常,但在我的应用程序中,我需要通过 MSGID 删除其中一些。我使用 SQL 命令进行了尝试,但它延迟了很多,然后我就超时了。
高级队列:
CREATE_QUEUE_TABLE (
queue_table => 'AQUSER.event_message_queue_qt',
queue_payload_type => 'AQUSER.EventMessageType',
sort_list => 'ENQ_TIME, PRIORITY');
CREATE_QUEUE (
queue_name => 'AQUSER.event_message_queue',
queue_table => 'AQUSER.event_message_queue_qt',
max_retries=> 10,
retry_delay=> 600);
CREATE_QUEUE (
queue_name => 'AQUSER.event_message_queue_ex_q',
queue_table => 'AQUSER.event_message_queue_qt',
queue_type => DBMS_AQADM.EXCEPTION_QUEUE);
尝试通过 MSGID 删除:
select * from event_message_queue_qt
where Q_NAME = 'event_message_queue_ex_q'
and MSGID = '6AA2E0C9A14ABA97E053119A14333514'