是否有本机oracle功能,应用程序可以挂钩接收更新?

时间:2010-10-04 19:25:01

标签: oracle

我有多个数据源插入和更新到oracle10g数据库。我还有多个客户端想知道插入或更新何时发生。我想知道oracle是否具有某种原生能力,让我的客户意识到插入或更新已经发生?我觉得答案是肯定的,但是想要以防万一。

谢谢!

编辑:理想情况下推送通知

2 个答案:

答案 0 :(得分:3)

根据您的目标,有一些不同的机制。

您可以使用Oracle Asynchronous Queues (AQ)发布更改,然后让您的应用程序通过OCI或更高级别的Oracle AQ API(例如让AQ为J2EE应用程序提供JMS队列)订阅更改)。

如果您正在编写OCI应用程序,Oracle会为continuous query notification提供支持,这是将数据推送到客户端的另一种方法。

最后,您的应用程序可以使用Oracle Change Data Capture (CDC)订阅更改。最后一个选项更多的是民意调查选项(即,如果有任何有趣的变化,你的应用程序会每隔几分钟询问一次)。另外两个是推送选项。

答案 1 :(得分:2)

我们已经非常成功地使用了DBMS_ALERT;您可以使用触发器向已注册接收通知的客户端发送警报。效果可能在某种程度上取决于您正在寻找的更改的数量和类型。 http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_alert.htm