Class ReactiveOrDiscardUnsyncedchangesHandler
同期されていない変更を自動的に回復しようとするクライアント リセット戦略です。 それが失敗した場合、このハンドラーは 同期されていない変更の破棄 戦略に戻ります。
名前空間: Realm 。同期。 Error Processing
組み立て: Realm.dll
構文
public sealed class RecoverOrDiscardUnsyncedChangesHandler : ClientResetHandlerBase
コメント
リカバリ用に構成されたクライアントがサーバー上で「自動リカバリの実行が許可されていない」というフラグが立てられていると、自動リカバリは失敗します。 この状況では、この戦略は同期されていない を破棄するようにフォールバックします。 同期されていないローカルの変更をすべて破棄し、リモート同期サーバーで利用可能な最新の Realm を使用します。 自動マージ ルールの詳細については、 「クライアントのリセット - .NET SDK 」 を参照してください。 自動リカバリ メカニズムにより書込みトランザクションが作成されます。つまり、行われるすべての変更は標準の Realm の変更通知を通じて適切に伝達されます。 RecounterOrDiscardUnsyncedchangesHandler戦略は、 OnBeforeReset 、 OnAfterRecovery 、 OnAfterDiscard 、およびManualResetFallbackの 4 つのコールバックを提供します。 OnBeforeResetは、クライアントのリセットが行われる直前に呼び出されます。 OnAfterRecoveryは、自動クライアントのリセットが成功した場合にのみ呼び出されます。 自動クライアント リセットが失敗した場合、コールバックは呼び出されません。 OnAfterDiscardは、自動クライアントのリセットが失敗し、代わりに同期されていないリセットの破棄が成功した場合にのみ呼び出されます。 同期されていないクライアントのリセットの破棄に失敗した場合、コールバックは呼び出されません。 ManualResetFallbackは、いずれかのリカバリ戦略でエラーが発生し、システムが手動モードにフォールバックする必要があるたびに呼び出されます。 この戦略を使用するための全体的な推奨事項は、使用可能な 3 つのコールバックの使用は、次の場合にのみ検討してください。
- ユーザーは、同期されていないローカル変更のマージまたは完全な破棄の結果として、同期されていないデータの受信データが失われる可能性があることを通知を受ける必要があります( OnBeforeReset )。
- ユーザーはリセットプロセスが完了したことを通知を受ける必要があります( OnAfterRecoveryまたはOnAfterDiscard )。
- データを区別するアプリケーションの高度なユースケースで、同期されていないデータを最も適切な方法で回復したい
- クライアントがリセットされる前に、Realm 全体をバックアップします( OnBeforeReset )。 このようなバックアップは、同期されていないデータの復元に使用される可能性があります( 3 を参照)。
プロパティ
| このページを編集 ソースを表示ManualResetFallback
スキーマの破壊的な変更が発生した場合など、操作を完了できないエラーが発生したときにトリガーされるコールバックを取得または設定します。
宣言
public ClientResetHandlerBase.ClientResetCallback? ManualResetFallback { get; set; }
プロパティ値
タイプ | 説明 |
---|---|
ClientResetHandlerBase.ClientResetCallback | 自動クライアントリセット処理が失敗した場合に呼び出されるコールバック。 |
OnAfterDiscard
クライアントリセットの同期されていない変更の破棄のフォールバックが先ほど発生したことを示すコールバックを取得または設定します。
宣言
public ClientResetHandlerBase.AfterResetCallback? OnAfterDiscard { get; set; }
プロパティ値
タイプ | 説明 |
---|---|
ClientResetHandlerBase 。 afterResetコールバック | 同期されていない変更を破棄するためにフォールバックしたクライアント リセットの直後に呼び出されるコールバック。 |
コメント
自動リカバリを使用したクライアントリセットが試行されたが、サーバーによってクライアントがそのような戦略を使用することを許可されていない場合、クライアントリセットはフォールバック非同期変更戦略で再試行されます。 この 2 回目の試行が成功すると、 OnAfterDiscardコールバックが呼び出されます。
OnAfterRecovery
自動クライアントリセットが先ほど発生したことを示すコールバックを取得または設定します。
宣言
public ClientResetHandlerBase.AfterResetCallback? OnAfterRecovery { get; set; }
プロパティ値
タイプ | 説明 |
---|---|
ClientResetHandlerBase 。 afterResetコールバック | クライアント リセットの直後に呼び出されるコールバック。 |
OnBeforeReset
クライアントリセットが迫っていることを示すコールバックを取得または設定します。
宣言
public ClientResetHandlerBase.BeforeResetCallback? OnBeforeReset { get; set; }
プロパティ値
タイプ | 説明 |
---|---|
ClientResetHandlerBase 。 BeforeResetコールバック | クライアント リセットの直前に呼び出されたコールバック。 |