none
DbConflictType.LocalCleanedupDeleteRemoteUpdate is undocumented RRS feed

  • Question

  • DbConflictType.LocalCleanedupDeleteRemoteUpdate is undocumented

    nothing to read about this sync conflict...

    is there any advice on what to do in this case of sync failures  ?
    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.
    Tuesday, January 12, 2010 7:40 PM
    Answerer

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 PM
    Answerer
  • 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).aspx
    it 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" : 
    NoteNote

    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 nameDescription
      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.
    Tuesday, January 12, 2010 7:40 PM
    Answerer