Oracle AQ的重新排名

时间:2011-05-09 15:48:26

标签: oracle plsql advanced-queuing

我正在尝试将通用pl / sql写入已经入队的(重新)入队消息(在任何状态下出现在队列表中)。

在队列上启用了dequeue时,它可以正常工作,因此我可以先在浏览模式下出列,以便填充DBMS_AQ.message_properties_t并从现有消息加载。但是,当出列队列被禁用时,如何获取那些?

  DBMS_AQ.enqueue(
       queue_name          => fine,
       enqueue_options     => fine,
       message_properties  => how from existing message,
       payload             => how from existing message 
                                     (probably can select, not big deal),
       msgid               => fine);

由于

2 个答案:

答案 0 :(得分:1)

有一个很好的例子,说明如何在Oracle网站上执行此操作: http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96587/apexampl.htm

基本上你可以以非破坏性的方式“出队”(IE出于浏览目的而出列)。因为你没有出列,但信息仍然存在。

答案 1 :(得分:1)

启用DEQUEUING以获取消息,无论是浏览还是删除模式:

begin
   sys.dbms_aqadm.start_queue('[QUEUE_NAME]', true, true);
end;
/