Share via


SYNC_RESOLVE_ACTION Enumeration

Represents actions that are taken to resolve a specific concurrency conflict.

Syntax

typedef enum
{
  SRA_DEFER,
  SRA_ACCEPT_DESTINATION_PROVIDER,
  SRA_ACCEPT_SOURCE_PROVIDER,
  SRA_MERGE,
  SRA_TRANSFER_AND_DEFER,
  SRA_LAST,
} SYNC_RESOLVE_ACTION;

Members

  • SRA_DEFER
    Ignore the conflict and do not apply the change. The change applier does not pass the conflict data to the destination provider.

  • SRA_ACCEPT_DESTINATION_PROVIDER
    The change made on the destination replica wins. The change applier passes a version-only change to the ISynchronousNotifyingChangeApplierTarget::SaveChange or ISynchronousNotifyingChangeApplierTarget::SaveChangeWithChangeUnits method and specifies a save action of SSA_UPDATE_VERSION_ONLY. Only version information for the item is updated in the metadata on the destination replica. No item data changes are made.

  • SRA_ACCEPT_SOURCE_PROVIDER
    The change made on the source replica wins. The change applier passes the change to the SaveChange or SaveChangeWithChangeUnits method and specifies a save action of SSA_UPDATE_VERSION_AND_DATA. The change is applied to the destination replica exactly like any non-conflicting change.

  • SRA_MERGE
    Merge the data from the source item into the destination item. The change applier passes the source replica's change data to the SaveChange or SaveChangeWithChangeUnits method and specifies a save action of SSA_UPDATE_VERSION_AND_MERGE_DATA. The destination provider combines the source item data and the destination item data, and applies the result to the destination replica.

  • SRA_TRANSFER_AND_DEFER
    Log the conflict and do not apply the change. The change applier passes the conflict data to the ISynchronousNotifyingChangeApplierTarget::SaveConflict method, which saves the conflict in a conflict log. For more information on logging conflicts, see Logging and Managing Conflicts.

  • SRA_LAST
    A placeholder for the last element in the enumeration. Do not use this value.

Remarks

The members of SYNC_RESOLVE_ACTION specify the action that the change applier uses to resolve a concurrency conflict. Concurrency conflicts occur when the same item or change unit is changed on two different replicas that are later synchronized. For more information on concurrency conflicts, see Detecting and Resolving Concurrency Conflicts.

Requirements

Header: Synchronization.h

See Also

Concepts

Sync Framework Core Components