我必须使用哪些命令来停止或启动Oracle AQ队列?
我需要停止队列以执行维护和分析,然后在分析完成后启动队列。
答案 0 :(得分:3)
您使用包DBMS_AQADM。
要停止队列,命令如下所示:
BEGIN
DBMS_AQADM.STOP_QUEUE(queue_name => 'QUEUE_NAME');
END;
此过程的可选参数“等待”具有以下行为:
指定是否等待未完成的完成 交易。 TRUE表示等待有任何未完成的 交易。在这种状态下,不允许新的交易入队 从此队列中取出或出列。 FALSE表示立即返回 成功或错误。
START 一个队列,它看起来像这样:
BEGIN
DBMS_AQADM.START_QUEUE(queue_name => 'QUEUE_NAME');
END;
您可能需要添加“SYS”作为包的前缀,具体取决于您的权限。
答案 1 :(得分:0)
我经常发现我只想停止出队。然后我必须像这样使用START_QUEUE()上的额外选项
execute DBMS_AQADM.STOP_QUEUE (queue_name => 'schema.queue', enqueue => FALSE, dequeue => TRUE);