Answered by:
DbConflictType.LocalCleanedupDeleteRemoteUpdate is undocumented

Question
-
DbConflictType.LocalCleanedupDeleteRemoteUpdate is undocumentednothing to read about this sync conflict...is there any advice on what to do in this case of sync failures ?
- Moved by Dong CaoMicrosoft employee Wednesday, January 13, 2010 8:43 PM It is a database provider question (From:SyncFx - Technical Discussion)
- Moved by Liam Cavanagh - MSFTMicrosoft employee Thursday, January 21, 2010 7:39 PM (From:SyncFx - Microsoft Sync Framework Database Providers)
Monday, January 11, 2010 11:56 AM
Answers
-
Since you did not specify the Sync Provider in the previous post, I assume you are using DbsyncProvider.
One simple way to resolve the conflict is to set the conflict resolve policy in the sync application level. How does you sync App invoke sync()? Please show exact Provider you used in the sync app if you need further help.
Another way is, on the destination provider/replica, hook up ApplyChangeFailed event to an event handler and in the event handler you can specify
if Source Win - e.Action = RetryWithForceWrite
if Destination Win - e.Action = Continue
where e should be of type DbApplyingChangesEventArgs.
Thanks.
Leo Zhou ------ This posting is provided "AS IS" with no warranties, and confers no rights.- Marked as answer by Dong CaoMicrosoft employee Wednesday, January 13, 2010 8:42 PM
Tuesday, January 12, 2010 7:40 PMAnswerer
All replies
-
This conflict means that the remote(or source) provider has detected row X was updated but the same row was deleted on the local (or destination) provider, plus the metadata of row X was cleaned up.
If you do a source win, then row X is inserted to the user table and the there should be a new metadata recorded for this change.
If you do a destination win, then there is no change on the local provider side.
Thanks.
Leo Zhou ------ This posting is provided "AS IS" with no warranties, and confers no rights.Monday, January 11, 2010 5:48 PMAnswerer -
Thanks for the description !!but one thing i wonder about, is how to "let the source win" ...When i read the conflict resolution guide: http://msdn.microsoft.com/en-us/library/cc761628(SQL.105).aspxit says i have 4 options (ApplyActions) that i can use, to determine the outcome - them be: Continue, RetryApplyingRow, RetryWithForceWrite and RetryNextSync...how do i let the Source or the Destination "Win" ???Thanks.edit:it seems that the version of the MSF i'm using, doesn't support the option to let the Source or Destination "win" :
Note
The Sync Framework API contains one type and one property that are related to conflict resolution but that are not used in this version of the API: DbResolveAction and ConflictResolutionPolicy.
Member name Description FireEvent Raise the ApplyChangeFailed event. LocalWins Overwrite the row at the remote peer with the row from the local peer. RemoteWins Overwrite the row at the local peer with the row from the remote peer. Tuesday, January 12, 2010 8:49 AM -
Since you did not specify the Sync Provider in the previous post, I assume you are using DbsyncProvider.
One simple way to resolve the conflict is to set the conflict resolve policy in the sync application level. How does you sync App invoke sync()? Please show exact Provider you used in the sync app if you need further help.
Another way is, on the destination provider/replica, hook up ApplyChangeFailed event to an event handler and in the event handler you can specify
if Source Win - e.Action = RetryWithForceWrite
if Destination Win - e.Action = Continue
where e should be of type DbApplyingChangesEventArgs.
Thanks.
Leo Zhou ------ This posting is provided "AS IS" with no warranties, and confers no rights.- Marked as answer by Dong CaoMicrosoft employee Wednesday, January 13, 2010 8:42 PM
Tuesday, January 12, 2010 7:40 PMAnswerer