有没有办法对 Oracle 中的更改通知进行故障排除?

Posted

技术标签:

【中文标题】有没有办法对 Oracle 中的更改通知进行故障排除?【英文标题】:Is there a way to troubleshoot change notifications in Oracle? 【发布时间】:2010-06-21 14:08:46 【问题描述】:

我正在尝试使用 oracle 更改通知(来自 Dbms_Change_Notification 包的 API)来更新复杂的物化视图。我使用 PL/SQL 回调为我的表安装了更改通知,我可以在 USER_CHANGE_NOTIFICATION_REGS 视图中看到我的更改通知已正确安装。在提交到观察表后,按预期调用具有低负载更改通知的开发 Oracle 服务器。但在高负载的真实服务器上,似乎永远不会调用更改通知。

有什么方法可以解决为什么不调用更改通知,何时调用它们,调用它们时会发生什么样的错误等等?

附:我正在使用 oracle 版本 10.2.0.3.0

【问题讨论】:

【参考方案1】:

在您的生产系统上,您是否设置了 JOB_QUEUE_PROCESSES 初始化参数?它必须设置为非零值。

注册查询的用户是否被授予生产数据库的正确权限(CHANGE NOTIFICATION 并在 DBMS_CHANGE_NOTIFICATION 上执行)?

【讨论】:

我已经从我的系统中删除了更改通知,因为几乎不可能解决它们的问题。但是,是的,我的用户同时拥有 CHANGE NOTIFICATION 和 EXECUTE ON DBMS_CHANGE_NOTIFICATION 权限,并且 JOB_QUEUE_PROCESSES 设置为非零值。

以上是关于有没有办法对 Oracle 中的更改通知进行故障排除?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 QObject 中的属性更改时得到通知?

有没有办法使用 DBMS_Alert 通知 Winform 应用程序数据库更改

在提交之前更改 Oracle SQL 查询文本 [关闭]

文件服务器满故障排查总结

有没有办法在后台让我的应用在 CMMotionActivity 更改时得到通知?

有没有办法对所有 oracle 包和程序进行全文搜索?