在我的项目中,我有一个许多客户连接到的数据库。并发访问和写入效果很好。现在的问题是不要每秒从数据库重新加载数据以始终拥有数据的当前状态。
如果数据库发生更改,Eclipselink 是否提供(自动?)重新加载数据的触发机制?如何使用这个触发器?
谢谢!
在我的项目中,我有一个许多客户连接到的数据库。并发访问和写入效果很好。现在的问题是不要每秒从数据库重新加载数据以始终拥有数据的当前状态。
如果数据库发生更改,Eclipselink 是否提供(自动?)重新加载数据的触发机制?如何使用这个触发器?
谢谢!
我见过的一种解决方案是使用数据库中的触发器将 JMS 消息发送到您的应用程序。然后在可以使 EclipseLink 缓存失效或刷新的 MDB 中接收该消息。这种方法适用于触发器将消息放入 AQ 表的 Oracle 数据库。
这些是我熟悉的 DBMS 特定解决方案,但挑战始终是获取更改通知以包含表和 PK 值而不是 ROWID,并确保不会通知您自己所做的更改或有一些方法可以轻松从您自己的更改中过滤掉通知。
我相信GoldenGate有助于解决这个问题,但我自己还没有尝试过。
道格