複寫衝突偵測與解決
經過初始同步處理之後,每當進行同步處理時,某個訂閱者所進行的資料變更可能會與不同訂閱者或發行者所進行的變更發生衝突。建立發行集時,您會指派解析程式處理這些衝突。
偵測衝突
進行同步處理時,在發行者上執行的合併代理程式會偵測到任何資料衝突,然後根據與此發行集相關聯的解析程式,決定哪個資料要加以接受並傳播到其他網站。
與 SQL Server 2005、SQL Server 2008 和 SQL Server 2008 R2 發行者進行同步處理時,MicrosoftSQL Server Compact 3.5 會同時支援資料列層級與資料行層級的追蹤。
注意
SQL Server Compact 3.5 不支援與 SQL Server 2000 進行同步處理。
使用解析程式
偵測到衝突之後,合併代理程式就會啟動選取給此發行項的衝突解析程式。這可能是預設解析程式、其他供應的解析程式之一,或是自訂解析程式。接受的變更會根據衝突解析程式的規則加以選擇。SQL Server Compact 3.5 訂閱者的衝突都會在發行者端加以偵測、解析及記錄。
重要
多使用者存取現在允許同步處理期間的資料變更。這些變更可能會導致用戶端的衝突。用戶端的衝突會在訂閱者端進行偵測,但不會加以解決。在下次同步處理期間,發行者端會重新偵測並解決衝突。如需詳細資訊,請參閱<多使用者存取及同步處理>。
解析程式可以使用資料變更的來源 (或是訂閱者的優先順序值) 來解決衝突。例如,預設解析程式遵守此規則:發行者上的變更一律會覆寫訂閱者上的變更。您可以選擇使用另一個不同的解析程式,讓它總是偏好訂閱者的變更,而不偏好發行者的變更。
注意
SQL Server Compact 3.5 用戶端的優先順序值一律為 0。因此,根據優先順序值的解析程式不會將優先權給予在裝置上所進行的變更。
如需衝突偵測及解決的詳細資訊,請參閱《SQL Server 線上叢書》的<合併式複寫衝突偵測及解決>。
注意
SQL Server Compact 3.5 訂閱不支援以預存程序為基礎的合併式衝突解決器。
使用自訂解析程式
自訂解析程式允許新增商務邏輯到複寫。自訂解析程式是一個以 Managed 程式碼或機器碼建構的 DLL。若要使用自訂解析程式,必須使用 sp_registercustomeresolver 預存程序登錄在發行者上以及執行 IIS 的伺服器上。sp_registercustomeresolver 預存程序包括 is_dotnet_assembly參數,您可以將其設定為 True 表示解析程式以 Managed 程式碼建立,或設定為 False 表示原生 DLL。
重要
自訂解析程式除了要在執行 SQL Server 的電腦上註冊之外,也必須在執行 IIS 的電腦上註冊。