我的情况是,一个 Oracle 系统是两个独立 CRM 系统(PeopleSoft 和 Siebel)的数据主控系统。Oracle 系统向 BizTalk 发送 CRUD 消息以获取客户数据、库存数据、产品信息和产品定价。BizTalk 格式化消息并将其转发到 PeopelSoft 和 Siebel Web 服务接口以供操作。在数据初始同步后,正在进行的操作造成了一种情况,即尽管数据已成功交付,但外围 Siebel 和 PeopleSoft 系统中的数据仍不准确(这是关于这些系统在返回“成功”时的含义的另一个对话' 到 BizTalk)。
在这种分布式的面向服务的方法中,其他类似的实现如何协调系统数据?他们是否从所有系统定期转储以进行比较?是否有任何其他技术或方法来发现失败的更新并确保同步?
感谢您的想法和经验。谢谢!
附加信息
那么为什么系统会不同步呢?当目标系统向 BizTalk 确认它已收到消息时,这意味着很多事情。有时 HTTP 200 意味着我已经得到它并将它放在临时表中,然后我会提交它。有时这是成功的,有时不是因为各种数据问题。有时 HTTP 200 意味着……是的,我已经收到并提交了数据。使用 HTTP,订单交付可能会出现问题。所有这些问题都可以通过预先进行大量的架构规划来解决。它没有完成。没有更新/创建时间戳来防止无序交付踩到数据。没有来自目的地系统的数据通信的完整往返确认。所有这些都导致事情变得不同步。