Oracle 高级队列(AQ)
-
永远不要对
dbms_aqadm.create_queue_table
创建的表使用 DDL 或 DML。仅使用 dbms_aqadm 和 dbms_aq 来处理这些表。Oracle 可能会制作一些你不会注意到的支持表,索引等。针对表手动运行 DDL 或 DML 可能会导致 Oracle 支持需要你删除并重新创建表和队列以解决此问题。 -
强烈建议你不要使用
dbms_aq.forever
作为等待选项。这导致了过去的问题,因为 Oracle 可能会开始安排过多的工作人员作业来处理不必要的队列(请参阅 Oracle Doc ID 2001165.1)。 -
建议你不要在 10.1 及更高版本中设置 AQ_TM_PROCESSES 参数。特别是避免将其设置为零,因为这将禁用维护队列所必需的 QMON 后台作业。你可以使用以下命令将此值重置为 Oracle 默认值并重新启动数据库。
alter system reset aq_tm_processes scope=spfile sid='*';