CVssWriter::OnFreeze メソッド (vswriter.h)
OnFreeze メソッドは、シャドウ コピーのフリーズの開始時に Freeze イベントが発生した場合にライターによって呼び出されます。 ライターは、このメソッドを使用して、フリーズに参加したり、フリーズを拒否したりするために必要な操作を実行します。
OnFreeze は純粋な仮想メソッドです。 これは CSVsWriter 基底クラスによって実装されず、派生クラスによって実装される必要があります。
構文
bool OnFreeze();
戻り値
このメソッドの実装では、致命的なエラーが発生した場合を除き 、true を返す必要があります。 致命的なエラーが発生した場合、メソッドは CSVsWriter::SetWriterFailure メソッドを呼び出して、 false を返す前にエラーの説明を提供する必要があります。 致命的でないエラーが発生した場合でも、メソッドは SetWriterFailure を 呼び出しますが 、true を返します。 一時的な問題が原因でエラーが発生した場合、メソッドは SetWriterFailure の呼び出しでVSS_E_WRITERERROR_RETRYABLEを指定する必要があります。
エラーが発生した場合、メソッドはイベント ログにイベントを書き込み、エラーの正確な理由を報告する必要があります。
注釈
このメソッドでは、ライター アプリケーション自体を VSS 操作と互換性のある明確に定義された状態にする必要があります。
このメソッドでは、ライターはシャドウ コピーの作成をサポートするための最終的な準備を完了する必要があります。 シャドウ コピーが作成されると、ライターは Thaw イベントを受け取り、通常の操作を続行できます。
既定では、Freeze イベントと Freeze イベントの間のタイムアウト期間は 60 秒です。 つまり、タイム アウト ウィンドウで雪解けイベントが受信されない場合は、Abort イベントが生成されます。 ライターは、初期化時に dwTimeoutFreeze 引数を CVssWriter::Initialize に設定することで、タイムアウト ウィンドウを変更できます。
ライターがシャドウ コピーを準備する方法は、シャドウ コピーをホストするアプリケーションに大きく依存します。 一部のアプリケーションでは、この期間、すべての書き込みを保持し、データを絶対的な一貫性のある状態に保つことができます。 他のアプリケーション (多くのデータベースと同様) は、この期間中は作業を停止できませんが、状態のチェックポイント処理などのアクションを実行できます。これにより、この期間中に作成されるシャドウ コピーの復旧時間が短縮される可能性があります。
ライター自体を Freeze の適切に定義された状態にできない場合は、次の処理が行われます。
- OnFreeze は false を返し、シャドウ コピーを拒否する必要があります。
- ライターは 、CVssWriter::SetWriterFailure を呼び出して、エラーの説明を提供します。
- OnFreeze が false を返すと、Abort イベントが生成されます
通常、Freeze イベントを処理するためのタイムアウト期間は、 PrepareForSnapshot イベントを処理する場合と比較して比較的短くなります。 したがって、開発者は、このメソッドで長い操作を避ける必要があります。 一般的な用途は、ライターによるログ記録を中断する場合です。
時間のかかる操作はすべて、 CSVsWriter::OnPrepareSnapshot によって処理することをお勧めします。
このメソッドの後に、CSVsWriter::OnThaw または CVssWriter::OnAbort が呼び出されます。
このメソッドが CVssWriterEx2::GetSessionId、 CVssWriter::SetWriterFailure、または CVssWriterEx2::SetWriterFailureEx メソッドを呼び出す場合は、このメソッドを呼び出したのと同じスレッドで呼び出す必要があります。 詳細については、「 ライター イベント処理」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | vswriter.h (Vss.h、VsWriter.h を含む) |
Library | VssApi.lib |