Oracle(连续查询通知)- 在 CQN 通知中获取更多数据的方法?

发布于 2024-10-17 05:15:01 字数 162 浏览 4 评论 0原文

我们使用 oracle CQN 来发送特定查询的更改通知。

这对于所有插入和更新都工作得很好。问题是删除,删除时,通知会连同 ROWID 以及其他详细信息一起发送。我们无法再使用 ROWID 来查找该行,因为它已被删除。

有没有办法在 CQN 通知中获取有关已删除行的更多数据?

We are using oracle CQN for change notifications for specific queries.

This is working fine for all the inserts and updates. The problem is delete, On delete the notification is sent with ROWID amongst other details. We cannot use the ROWID to lookup the row any more because it has been deleted.

Is there a way to get more data in a CQN notification regarding the deleted row ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

水晶透心 2024-10-24 05:15:01

恐怕不是。

我的理解是,该服务是专门为允许服务器或客户端实现缓存而定制的。在这种情况下,缓存的表或视图应该加载到内存中包括 rowid,收到通知后,订阅 CQN 服务的缓存管理器应该使受 rowid 列表影响的行无效(或提前再次获取)。

现实生活中的例子。这对于智能网络(即管理电信网络上的预付费用户)等实时数据库非常有用,其中呼叫者需要尽快接通。负责授权调用的机器(SCP,整个地区有好几个)通常是一个内存数据库,真正的持久数据库位于另一个节点(中央数据中心的 SDP)。 SDP 及其磁盘数据库接收生命周期事件和余额重填事件,并通知订阅 SCP。

您可能有不同的使用模式。

I'm afraid not.

My understanding is that this service is tailored to allow servers or clients to implement caches. In which case the cached table or view is supposed to be loaded in memory including the rowid, upon a notification, the cache manager having subscribed to the CQN service is supposed to invalidate the rows affected by the rowid list (or fetch it again in advanced).

Real life example. This can be useful for real time databases like Intelligent Network (i.e. to manage Prepaid Su$bscribers on a telecom network) in which callers need to be put through asap. The machine in charge of authorizing the calls (the SCP, there are several of them on the whole territory) is usually an in-memory database and the real persistent db lives on another node (the SDP at a central datacenter). The SDP with its on-disk db receives life-cycle events and balance refils events and notifies the subscribing SCPs.

You might have a different usage model.

不及他 2024-10-24 05:15:01

我也遇到了这个问题,我没有删除一行,而是使用了“Active”列,我没有删除一行,而是将“Active”从“YES”更改为“NO”。

I had this problem too, instead of deleting a row, I used a column "Active", instead of deleting a row I changed "Active" from "YES" to "NO".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文