从异常队列中取消排队消息



如何从异常队列取消消息排队
我在谷歌上搜索,但没有得到任何简短的想法。

首先,您必须启动异常队列:

EXECUTE DBMS_AQADM.START_QUEUE('OWNER.your_ex_q', true, true);

然后,您可以运行以下指令来取消排队,传递MSG_ID:

DECLARE
   dequeue_options     dbms_aq.dequeue_options_t;
   message_properties  dbms_aq.message_properties_t;
   message_handle      RAW(16);
   message             aq.message_typ;
BEGIN
   DBMS_AQ.DEQUEUE(queue_name => 'msg_queue',
           dequeue_options    => dequeue_options,
           message_properties => message_properties,
           payload            => message,
           msgid              => message_handle);
   COMMIT;
END;

如果这是关于Oracle Advanced Queueing(我不知道(,Google知道Oracle说了以下内容:

如何从异常队列中取消排队?

多使用者队列的异常队列也必须是 多使用者队列。

多使用者队列中的过期消息不能由 邮件的预期收件人。但是,它们可以在 删除模式一次(仅一次(,在取消排队中使用 NULL 使用者名称 选项。还可以通过以下方式将消息从异常队列中取消排队 指定消息 ID。

如果 多使用者异常队列是在没有 兼容参数或兼容参数设置为"8.0">

这是你要找的吗?

最新更新