Link to home
Start Free TrialLog in
Avatar of paulmward
paulmward

asked on

Records in the Conflict tables even though Custom Resolver is working

Hello,

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,


Paul
Avatar of Gokulm
Gokulm

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.
Avatar of paulmward

ASKER

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?
ASKER CERTIFIED SOLUTION
Avatar of Gokulm
Gokulm

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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.