SaveChangeWithChangeUnitsContext.RecordRecoverableErrorForChangeUnit Method
Indicates that a recoverable error occurred when data for this change unit was saved to the item store.
Namespace: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (in Microsoft.Synchronization.dll)
Syntax
'Declaration
Public Sub RecordRecoverableErrorForChangeUnit ( _
changeUnitChange As ChangeUnitChange, _
errorData As RecoverableErrorData _
)
'Usage
Dim instance As SaveChangeWithChangeUnitsContext
Dim changeUnitChange As ChangeUnitChange
Dim errorData As RecoverableErrorData
instance.RecordRecoverableErrorForChangeUnit(changeUnitChange, _
errorData)
public void RecordRecoverableErrorForChangeUnit(
ChangeUnitChange changeUnitChange,
RecoverableErrorData errorData
)
public:
void RecordRecoverableErrorForChangeUnit(
ChangeUnitChange^ changeUnitChange,
RecoverableErrorData^ errorData
)
member RecordRecoverableErrorForChangeUnit :
changeUnitChange:ChangeUnitChange *
errorData:RecoverableErrorData -> unit
public function RecordRecoverableErrorForChangeUnit(
changeUnitChange : ChangeUnitChange,
errorData : RecoverableErrorData
)
Parameters
- changeUnitChange
Type: Microsoft.Synchronization.ChangeUnitChange
The change unit change that caused the error.
- errorData
Type: Microsoft.Synchronization.RecoverableErrorData
Additional information about the error.
Exceptions
Exception | Condition |
---|---|
CreateFailuresMustBeForEntireItemException | The save action that is contained in the SaveChangeWithChangeUnitsContext object is Create. In this situation, creation of the entire item must fail. |
Remarks
When this method is called, an ItemChangeUnitOverride object is added to the learned knowledge, and the change unit change will not be enumerated again for the duration of the synchronization session.
Examples
The following example tries to create or update a change unit in the destination replica. When an exception occurs, a recoverable error that contains the exception is recorded for the change unit, and synchronization continues.
Case SaveChangeAction.Create, SaveChangeAction.UpdateVersionAndData
If True Then
' Update the item store and metadata store for the specified change unit.
Try
Dim cuData As String = DirectCast(context.ChangeData, String())(cuChange.ChangeUnitId.GetByteId())
_ContactStore.UpdateContactFromSync(change, cuChange, cuData)
Catch ex As Exception
Dim errData As New RecoverableErrorData(ex)
context.RecordRecoverableErrorForChangeUnit(cuChange, errData)
End Try
Exit Select
End If
case SaveChangeAction.Create:
case SaveChangeAction.UpdateVersionAndData:
{
// Update the item store and metadata store for the specified change unit.
try
{
string cuData = ((string[])context.ChangeData)[cuChange.ChangeUnitId.GetByteId()];
_ContactStore.UpdateContactFromSync(change, cuChange, cuData);
}
catch (Exception ex)
{
RecoverableErrorData errData = new RecoverableErrorData(ex);
context.RecordRecoverableErrorForChangeUnit(cuChange, errData);
}
break;
}