2012-03-15 61 views
0

我使用ApexSQL Diff API同步服務器和客戶端數據庫與不同的身份種子。同步後,我重新填寫了兩個數據庫。syncrhonise數據庫,然後種子沒有競爭條件

存在競爭條件。如果服務器在同步之後但在重新播種之前添加新行,則它們將具有錯誤的ID。 ApexSQL管理自己的數據庫連接,所以我不能在事務內同步。

實施例:

  1. 重新設定種子客戶端數據庫,以1000
  2. 重新設定種子服務器數據庫爲0
  3. 三行添加到客戶端。他們有ID 1000,1001,1002。
  4. 將三行添加到服務器。他們有ID 0,1,2。
  5. 同步。服務器現在具有ID爲0,1,2,1000,1001,1002的行。
  6. 添加客戶端的行已隱式重新將服務器重新設置爲1003.
  7. 某行通過其他進程添加到服務器。它有ID 1003.
  8. 客戶端將服務器重新設置爲3 ...太晚了!

回答

0

我們爲客戶端帶負號,從而避免重新發送服務器:-)