有没有办法对 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 中的更改通知进行故障排除?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用 DBMS_Alert 通知 Winform 应用程序数据库更改