選擇解決器時,請考慮應用程式中衝突解決的重要性,以及您可以使用預設優先順序式衝突解決器,還是需要使用發行項解決器。
如果您的數據分割時沒有多位使用者寫入相同的分割區,而且您的復寫拓撲相對基本(一個發行者和少數「訂閱者」),則衝突應該很少見或不存在。 在這些環境中,您可能不需要複雜的衝突解決策略。 建議使用預設設定來解決衝突,包括客戶端訂閱和優先更改獲勝政策。 如果拓撲更為複雜(例如,使用重新發佈訂閱者),則具有特定優先順序的伺服器訂閱可能更合適。
如果您的業務需求需要比預設解析器更精細的解決方案,建議使用文章解析器。 如果您選擇使用文章解析器,建議您使用商業邏輯處理器。 如需詳細資訊,請參閱 在合併同步處理期間執行商業規則。
最後,選擇是否要使用預設解析程式或發行項解析程式,應該以應用程式的數據和商業規則需求為基礎。 例如,請考慮將客戶排名數據輸入不同訂閱者的一組非分割數據表的員工;員工跨越各種工作類別(分支經理、營運經理、銷售人員),以及工作類別會決定應優先使用哪些數據。 在此情況下,可以建立一個文章解析器,使用文章中的工作類別數據以確定當發生衝突時的優勝者。
如果衝突可能以某些頻率發生,以下是實作衝突解決策略時應考慮的最重要決策。
| 衝突解決的議題 | 建議 |
|---|---|
| 不同的用戶類別需要不同的優先順序值。 | 使用預設解析程式,並建立具有不同優先順序值的伺服器訂用帳戶。 -或- 使用可以識別文章中權威值欄位的解析程序,以幫助解決衝突。 |
| 希望在衝突解決方案中獲得勝利所做的第一個變更。 | 使用預設解析程式並建立用戶端訂用帳戶。 |
| 允許多個使用者可以變更相同數據行中的不同資料列,只要不會對相同的資料列進行衝突的變更。 | 使用預設解析程式或啟用欄位層級追蹤的文章解析程式。 |
| 將數據列中任何值的多個變更標示為衝突。 | 使用預設解析程式或文章解析程式搭配列級追蹤。 |
| 將邏輯記錄中任何值的多個變更標示為衝突。 | 使用預設解析程式搭配邏輯記錄層級追蹤(邏輯記錄功能不支援自定義解析程式或商業規則處理程式)。 |
| 衝突結果數據必須與原始衝突數據不同。 | 使用計算新值的文章解析器。 |