Records in the Conflict tables even though Custom Resolver is working


I have merge replication setup between two SQL2000 (SP3a) DBs.

The Subscriber synchronises with the Publisher every 15mins and has been like this for 2 years.

Updates are allowed on both DBs

I am using the Microsoft SQL Server DATETIME (Later Wins) Conflict Resolver to resolve any conflicts where the same record is updated on both DBs.

The "resolve conflicts interactively" option is not enabled.

The resolver is working fine and the record with the latest date always wins.

However I have recently noticed that in EM I can View Conflicts and choose to "Keep winning change" or "Resolve With This Data" on conflicts that have already been resolved.

My question is, although the resolver is working correctly why are records appearing in the Conflict tables?

Should I be concerned by the records in the conflict table or will they be automatically removed after a certain time?

Thanks in advance,

Who is Participating?
GokulmConnect With a Mentor Commented:
I guess these need to be manually deleted. You can use the below system stored proc to do so...

Deletes rows from a conflict table or the MSmerge_delete_conflicts table. This stored procedure is executed at the computer where the conflict table is stored, in any database.

sp_deletemergeconflictrow [ [ @conflict_table = ] 'conflict_table' ]
    [ , [ @source_object = ] 'source_object' ]
    { , [ @rowguid = ] 'rowguid'
    , [ @origin_datasource = ] 'origin_datasource' ] }
    [ , [ @drop_table_if_empty = ] 'drop_table_if_empty' ]

Conflict viewer displays the results of conflicts that are already resolved. So you need not worry about the records in the conflict table.. below is the extract from BOL...

Interactive Resolver
Microsoft SQL Server replication provides an interactive resolver, which allows you to resolve conflicts manually during on-demand synchronization. Activated at run-time, the Interactive Resolver displays data for each conflicting row, and provides options for viewing and editing the conflict data, and resolving each conflict individually.

Interactive Resolver and the Conflict Viewer
The Interactive Resolver resembles the Conflict Viewer. However, the Conflict Viewer displays the results of conflicts that are already resolved after merge synchronization, and the Interactive Resolver displays each conflict prior to resolution, allowing you to determine the outcome of each conflict during merge synchronization. Someone must be available to monitor the Interactive Resolver when a conflict occurs.
paulmwardAuthor Commented:
Thanks Gokulm.

Are the records in the conflict tables maintained/deleted at anytime or will they continue to build up until they are manually deleted?
paulmwardAuthor Commented:
Thanks for pointing out the sp

I've had a look into it and it looks like it's what I'm after.

What I'm still unsure about is what's the point logging the records in the conflict tables when they've already been resolved.

If it's a case of "that's the way it works" then fine, but I'm just wondering whether there's anything I can do to stop the records from being entered into the conflict tables and therefore having to be maintained?
Conflicts are automatically resolved using the conflict resolver initially selected when the article was created. As conflicts are resolved during synchronization, the data from the losing row is written to a conflict table. The Replication Conflict Viewer allows you to review these conflict records and, potentially, modify your data.

The conflict resolver choices for queued updating subscriptions are:
Publisher wins and the subscription is reinitialized
Publisher wins
Subscriber wins

Note:  The Replication Conflict Viewer displays conflicts that may occur as part merge replication or as part of snapshot or transactional replication whenever updatable subscriptions (immediate updating or queued updating) are used. In the case of snapshot and transactional publication using updatable subscriptions, you will be able to use Replication Conflict Viewer to observe the conflict, but you will not be able to alter the resolution the way you can with conflicts that occur during merge replication synchronization.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.