Oracle DBMS_警报等待任何延迟

Oracle DBMS_警报等待任何延迟,oracle,asynchronous,plsql,jobs,Oracle,Asynchronous,Plsql,Jobs,我有一份工作,它将提交n份其他工作。我已经设置了pl/sql过程,以便使用dbms_alert.register注册n个作业。每个作业都将发送dbms_alert.signal。信号发出后,我立即发出了一份承诺 问题是,当我的程序到达dbms_alert.waitany时,not信号将在5秒钟内返回(几乎每次都是如此)。该过程将提交另外n个作业,waitany在大约5秒钟内不会再次收到任何信号 我做了研究,发现dbms_alert.waitany的默认轮询间隔为5秒。这可以通过使用dbms_al

我有一份工作,它将提交n份其他工作。我已经设置了pl/sql过程,以便使用dbms_alert.register注册n个作业。每个作业都将发送dbms_alert.signal。信号发出后,我立即发出了一份承诺

问题是,当我的程序到达dbms_alert.waitany时,not信号将在5秒钟内返回(几乎每次都是如此)。该过程将提交另外n个作业,waitany在大约5秒钟内不会再次收到任何信号

我做了研究,发现dbms_alert.waitany的默认轮询间隔为5秒。这可以通过使用dbms_alert.set_defaults过程进行更改。我这样做毫无效果。我在代码中乱放了dbms_alert.set_defaults(1)(也尝试了600),试图在5秒内获得信号,但没有任何效果

有人能帮我吗


谢谢

您要查找的是不推荐使用的初始化参数\u job\u queue\u interval。它仍然可以设置为

alter system set“\u job\u queue\u interval”=5 scope=spfile

…并重新启动数据库


DBMS_ALERT.SET_DEFAULTS过程在需要轮询循环时设置轮询间隔(这种情况非常罕见)。请参阅关于何时进行轮询(这是非常罕见的)。

我认为,您只需在调用
waitany
之前调用
set\u defaults
。在线文档和其他来源对此过程非常不清楚-不清楚“敏感度”参数是以秒为单位还是以hsecs为单位。另见:“WAITANY调用使用轮询循环检测警报……轮询循环以1秒间隔开始,以指数方式增加到30秒。”-未提及设置默认值。