Conflict Resolution

Replication conflicts are minimal if the data is partitioned correctly. By assigning ownership of data, you can minimize synchronization conflicts. For example, you might not want to allow sales representatives to change data in other sales representatives' territories. However, you do want to allow a sales manager to change data in several territories. SQL Server 7.0 provides a flexible approach to handling conflict resolution by managing conflicts automatically using built-in rules or custom rules.

By default, SQL Server 7.0 uses priority-based conflict resolution. Every Subscriber and Publisher is assigned a number between 0 and 100. Whenever a conflict occurs, the changes made by the client with the highest priority rating win.

A benefit of this priority rule is that the conflict-resolution mechanism will not undo changes made by the highest priority user. It does not prevent lower priority clients from making subsequent changes to the rows; however, when a conflict occurs, high priority rated replicas always win.

In the event that the priority rule results in a tie, then the change at the central database server wins. For all synchronizations, one site always acts as the central database server.

If you do not want to use a priority-based approach, you can use SQL-DMO to create your own conflict-resolution agent. You can use Visual Studio, C++, or any other language that supports COM, to write the conflict-resolution agent.

Sybase Conflict Resolution

Sybase Adaptive Server Anywhere 6.0 supports conflict resolution with table triggers. However, you must write a conflict-resolution script for every published table. There is no support for priority-based resolution, and there are no defaults. Writing a reliable conflict-resolution script is difficult without priority-based resolution.

Watcom SQL is the only language supported for resolving conflicts in Sybase Adaptive Server Anywhere 6.0.