【问题标题】:How to stop & start a queue in Oracle AQ如何在 Oracle AQ 中停止和启动队列
【发布时间】:2017-03-25 14:52:57
【问题描述】:

我必须使用哪些命令来停止或启动 Oracle AQ 队列?

我需要停止队列以执行维护和分析,然后在分析完成后启动队列。

【问题讨论】:

    标签: plsql oracle-aq


    【解决方案1】:

    你使用包DBMS_AQADM。

    要STOP队列,命令如下所示:

    BEGIN
      DBMS_AQADM.STOP_QUEUE(queue_name => 'QUEUE_NAME');
    END;
    

    此过程的可选参数“等待”具有以下行为:

    指定是否等待未完成的完成 交易。 TRUE 表示等待是否有任何未完成的 交易。在这种状态下,不允许新事务入队 到此队列或从该队列中出列。 FALSE 表示立即返回 成功或错误。

    开始队列如下所示:

    BEGIN
      DBMS_AQADM.START_QUEUE(queue_name => 'QUEUE_NAME');
    END;
    

    您可能需要添加“SYS”作为包的前缀,具体取决于您的权限。

    【讨论】:

    • 您创建了问题,同时创建了答案并将其标记为正确?
    • @AlexoPo。实际上,我花时间写一个问题,制定一个写得很好的有效答案,将其发布在 SO 上供您在 google 上搜索并使用它,您还敢抱怨吗?
    • google 中的第一个链接通常指向 DBMS_AQADM 的 Oracle 文档,所以 - 是的,我敢。
    【解决方案2】:

    我经常发现我只想停止出队。然后我必须像这样使用 START_QUEUE() 上的额外选项

    execute DBMS_AQADM.STOP_QUEUE (queue_name => 'schema.queue', enqueue => FALSE, dequeue => TRUE);
    

    【讨论】:

      猜你喜欢
      • 2011-05-14
      • 2019-07-11
      • 1970-01-01
      • 2017-03-25
      • 2011-11-25
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多