Oracle db作为两个应用程序的数据交换层

时间:2013-11-08 11:00:31

标签: c# sql oracle polling

我有两个应用程序:App#1 e App#2。他们使用Oracle DB交换数据,即App#1在表中写入数据,App#2从中读取数据。有多个表,但每个表中只有一个App具有写权限,另一个App读取数据并在读取后删除它们,所以我认为我没有任何数据完整性问题。

如何查看新数据?我想到的唯一解决方案是每隔X秒对表进行一次轮询。

2 个答案:

答案 0 :(得分:1)

不要使用数据库。使用消息系统,例如EasyNetQ

如果您不能这样做,那么您的下一个最佳选择是向表中添加触发器,并让这些触发器更新状态表。然后,App2只需轮询一个表以进行更改。

可以使用Continuous Query NotificationDatabase Change Notification。然后,应用程序会收到更改通知,不需要轮询。

如果您无法更改数据库,那么您几乎不会让App2定期轮询所有表以进行更改。

答案 1 :(得分:0)

我建议在配置的时间间隔轮询数据库,以便更好地控制。

一旦你成功处理MyData移动记录到MydataProcessed的数据,就创建两组MyData和MydataProcessed这样的表,这使得在MyData table lite上进行轮询,你仍然可以在MydataProcessed中获得完整的数据交换历史记录表