0
我使用ApexSQL Diff API同步服務器和客戶端數據庫與不同的身份種子。同步後,我重新填寫了兩個數據庫。syncrhonise數據庫,然後種子沒有競爭條件
存在競爭條件。如果服務器在同步之後但在重新播種之前添加新行,則它們將具有錯誤的ID。 ApexSQL管理自己的數據庫連接,所以我不能在事務內同步。
實施例:
- 重新設定種子客戶端數據庫,以1000
- 重新設定種子服務器數據庫爲0
- 三行添加到客戶端。他們有ID 1000,1001,1002。
- 將三行添加到服務器。他們有ID 0,1,2。
- 同步。服務器現在具有ID爲0,1,2,1000,1001,1002的行。
- 添加客戶端的行已隱式重新將服務器重新設置爲1003.
- 某行通過其他進程添加到服務器。它有ID 1003.
- 客戶端將服務器重新設置爲3 ...太晚了!