總和檢查碼和物件計數

總和檢查碼和物件計數是偵測策略,可讓應用程式偵測部分更新狀態。 總和檢查碼也可以用來偵測衝突解決所產生的不一致。 總和檢查碼和物件計數都需要一個位置來儲存用於驗證總和檢查碼或物件計數的值。 這可以在應用程式特定關聯性或儲存相關物件之父對象之間選擇的「主要」物件上。

對於總和檢查碼,讀取相關物件的應用程式會藉由計算本機結果並將其與預存值進行比較,來驗證總和檢查碼。 如果值不相符,複本會處於部分更新狀態,而且無法使用物件。

針對物件計數,應用程式會計算相關物件(通常是單一父系的子系),並將計數與預存值進行比較。 如果計數不相符,複本會處於部分更新狀態,而且無法使用物件。

一些重要考慮:

  • 若要讓總和檢查碼方法能夠運作,計算總和檢查碼時所使用的一或多個屬性必須更新。 用來計算總和檢查碼的演演算法必須可靠地反映輸入的差異。 如果許多不同的輸入產品具有相同總和檢查碼,演算法將無法可靠地偵測部分更新。 使用來源計算機 objectGUID 之類的值進行輸入,以及更新的日期和時間也很有説明。
  • 物件計數最適合搭配新物件集使用,或與一致性 GUID 搭配使用(如需詳細資訊,請參閱下一節)。 執行更新的應用程式必須事先知道更新完成時將會在容器中的物件數目,或使用一些其他方式將容器標示為無效,同時更新繼續進行(例如,將計數設定為零)。 完成更新之後,來源應用程式會以包含的物件計數標示容器。