代码之家  ›  专栏  ›  技术社区  ›  Christian Loris

协调同步系统中的数据

  •  0
  • Christian Loris  · 技术社区  · 15 年前

    在这种情况下,一个Oracle系统是两个独立CRM系统(PeopleSoft&Siebel)的数据主控系统。Oracle系统将客户数据、库存数据、产品信息和产品定价的CRUD消息发送到Biztalk。Biztalk将消息格式化并转发到Peopelsoft&Siebel Web服务Intercaes以执行操作。在初始同步数据之后,正在进行的操作造成了这样一种情况,即尽管成功地交付了数据,但Siebel和PeopleSoft系统中的数据并不准确(这是有关这些系统在将“成功”返回到Biztalk时的含义的另一种表述)。

    在这种分布式面向服务的方法中,其他类似的实现如何协调系统数据?它们是否从所有系统运行定期转储以进行比较?是否有其他技术或方法可以发现失败的更新并确保同步?

    感谢您的想法和经验。谢谢!

    附加信息

    那么,为什么系统不同步呢?当一个目的地系统从acknolveges到biztalk时,它收到了消息,这意味着许多事情。有时,HTTP200意味着我已经得到了它,并将它放在了一个临时表中,我将在稍后提交它。有时这是成功的,有时不是为了各种数据问题。有时HTTP 200意味着…是的,我已经收到并提交了数据。使用HTTP,ordere dlivery可能存在问题。所有的TESE问题都可以通过提前进行大量的架构规划来解决。还没有完成。没有更新/创建时间戳来防止未订购的交货单步执行数据。没有来自destinatin系统的数据提交的完整往返确认。所有这些加起来就是失去同步的原因。

    1 回复  |  直到 15 年前
        1
  •  1
  •   yieldvs    15 年前

    (抱歉,这是一个答案,不是一个评论,我的工作方式高达50分)。

    数据是否可以在其他系统中更新,或者本质上是只读的?
    能否在Biztalk层中实现进一步的验证,以确保更新不会因数据问题而失败? 您是否可以从目标系统获取更新失败的任何类型的通知,这些通知将允许您在Biztalk层中进行补偿?

    fwiw在这种情况下,我通常会得到一个中央数据存储,其中至少包含来自3个系统的数据键,这些系统充当数据的新黄金存储库,但是这通常是为了补偿多个更新源。似乎我们也经常操作一些用户必须维护的手动错误队列。

    对于您的批量调节的想法,我已经看到这对于补偿交易错误非常常见,特别是在金融服务领域。