We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Records in the Conflict tables even though Custom Resolver is working

paulmward
paulmward asked
on
Medium Priority
890 Views
Last Modified: 2009-07-29
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
Comment
Watch Question

Commented:
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.

Author

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?
Commented:
I guess these need to be manually deleted. You can use the below system stored proc to do so...

sp_deletemergeconflictrow
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.

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

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

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?

Commented:
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.
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.