ApplyChangeFailedEventArgs Class

Provides data for the client ApplyChangeFailed event and the server ApplyChangeFailed event.


Namespace:  Microsoft.Synchronization.Data
Assembly:  Microsoft.Synchronization.Data (in Microsoft.Synchronization.Data.dll)

public class ApplyChangeFailedEventArgs : EventArgs

The ApplyChangeFailedEventArgs type exposes the following members.

Public methodApplyChangeFailedEventArgsInitializes a new instance of the ApplyChangeFailedEventArgs class by using table metadata, conflict, error, session, context, connection, and transaction parameters.

Public propertyActionGets or sets an ApplyAction enumeration value that specifies the action to handle the conflict.
Public propertyConflictGets a SyncConflict object that contains data and metadata for the row being applied and for the existing row in the data store that caused the failure.
Public propertyConnectionGets an IDbConnection object for the connection over which changes were attempted during synchronization.
Public propertyContextGets a SyncContext object that contains data changes, and anchor values and other metadata for a synchronization session.
Public propertyErrorGets an Exception object that contains metadata about any exceptions that occurred during synchronization.
Public propertySessionGets a SyncSession object that contains synchronization session variables, such as the ID of the client that is synchronizing.
Public propertyTableMetadataGets a SyncTableMetaData object that contains metadata about the table, such as anchor values and the direction of synchronization.
Public propertyTransactionGets or sets an IDbTransaction object that contains the transaction within which changes to tables were attempted.

Public methodEquals (Inherited from Object.)
Protected methodFinalize (Inherited from Object.)
Public methodGetHashCode (Inherited from Object.)
Public methodGetType (Inherited from Object.)
Protected methodMemberwiseClone (Inherited from Object.)
Public methodToString (Inherited from Object.)

If a row cannot be applied during synchronization, the ApplyChangeFailed event is raised. The ApplyChangeFailedEventArgs object provides information about the error or conflict that caused the failure. In a handler for the event, you can respond to the event in several ways, including specifying whether the synchronization provider should try to apply the row again. For more information, see How to: Work with Events and Program Business Logic and How to: Handle Data Conflicts and Errors.

The following code examples specify an event handler for the ApplyChangeFailed event. The method called logs information to separate files for the client and server synchronization providers. To view this code in the context of a complete example, see How to: Use Session Variables.

this.ApplyChangeFailed += new EventHandler<ApplyChangeFailedEventArgs>(EventLogger.LogEvents);

else if (e is ApplyChangeFailedEventArgs)

    ApplyChangeFailedEventArgs args = (ApplyChangeFailedEventArgs)e;
    outputText.AppendLine("** APPLY CHANGE FAILURE AT " + site.ToUpper() + " **");
    outputText.AppendLine("Table for which failure occurred: " + args.TableMetadata.TableName);
    outputText.AppendLine("Error message: " + args.Error.Message);


AddHandler Me.ApplyChangeFailed, AddressOf EventLogger.LogEvents

ElseIf TypeOf e Is ApplyChangeFailedEventArgs Then

    Dim args As ApplyChangeFailedEventArgs = CType(e, ApplyChangeFailedEventArgs)
    outputText.AppendLine("** APPLY CHANGE FAILURE AT " & site.ToUpper() & " **")
    outputText.AppendLine("Table for which failure occurred: " & args.TableMetadata.TableName)
    outputText.AppendLine("Error message: " & args.Error.Message)

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.