SaveChangeWithChangeUnitsContext.RecordRecoverableErrorForChangeUnit メソッド

この変更単位のデータが項目ストアに保存されたときに、復旧可能なエラーが発生したことを示します。

名前空間: Microsoft.Synchronization
アセンブリ: Microsoft.Synchronization (microsoft.synchronization.dll 内)

構文

'宣言
Public Sub RecordRecoverableErrorForChangeUnit ( _
    changeUnitChange As ChangeUnitChange, _
    errorData As RecoverableErrorData _
)
'使用
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
)
public void RecordRecoverableErrorForChangeUnit (
    ChangeUnitChange changeUnitChange, 
    RecoverableErrorData errorData
)
public function RecordRecoverableErrorForChangeUnit (
    changeUnitChange : ChangeUnitChange, 
    errorData : RecoverableErrorData
)

パラメーター

  • changeUnitChange
    エラーの原因となった変更単位の変更です。
  • errorData
    エラーに関する詳細です。

例外

例外の種類 条件

CreateFailuresMustBeForEntireItemException

SaveChangeWithChangeUnitsContext オブジェクトに含まれる保存操作が Create です。この場合、項目全体の作成が失敗します。

解説

このメソッドが呼び出されると、学習したナレッジに ItemChangeUnitOverride オブジェクトが追加されます。その結果、同期セッションの実行中は、変更単位の変更が再度列挙されることはありません。

次の例では、同期先レプリカ内で変更単位の作成または更新を試みます。例外が発生した場合は、その例外を含む復旧可能なエラーが変更単位に対して記録され、同期が続行されます。

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;
}

参照

リファレンス

SaveChangeWithChangeUnitsContext クラス
SaveChangeWithChangeUnitsContext メンバー
Microsoft.Synchronization 名前空間