CChkSGFiles.ErrCheckLogs 関数
適用対象: Exchange Server 2003 |Exchange Server 2007 |Exchange Server 2010 |Exchange Server 2013
ErrInit 関数で指定されたすべてのデータベース ファイルのログ ファイルを検証します。 検証済みログ ファイルは、ErrInit に渡されたパス内に存在し、3 文字のベース ログ ファイル名を持っているものです。
Vitual ERRErrCheckLogs
(
BOOL * const pfOnlyUnnecessaryLogsCorrup,
Const ULONGulFlags = NO_FLAGS
);
パラメーター
pfOnlyUnnecessaryLogsCorrupt
出力パラメーターです。 true の場合、このパラメーターは、トランザクション ログ ファイルでエラーが見つかったことを示しますが、これらのエラーはすべて、データを失わずにデータベースをクリーン シャットダウン状態にするために必要ないログ ファイルで見つかりました。 このパラメーターで返される true 値は、 ErrCheckLogs が errSuccess を返す場合にのみ有効です。
ulFlags
オプションの入力パラメーター。 この値は、今後の使用のために予約されています。 このパラメーターで渡された値は 0 (ゼロ) になります。
戻り値
ERR 列挙型のエラー コード。
この関数は、ログ ファイルにエラーが見つかった場合でも errSuccess を返す可能性があります。 そのため、ErrCheckLogs が errSuccess を返したときには、アプリケーションでは pfOnlyUnnecessaryLogsCorrupt 戻り値パラメーターも調べる必要があります。 ErrCheckLogs が errSuccess を返したときに、pfOnlyUnnecessaryLogsCorrupts が true の場合は、データベースを最新状態にする必要のないログ ファイルにのみ、1 つ以上のエラーが見つかったことを意味します。
注釈
ErrCheckDbHeaders 関数は、ErrCheckLogs 関数よりも先に呼び出す必要があります。
Exchange データベース トランザクション ログ ファイルをチェックする場合、ストレージ グループ内のデータベースをデータ損失なしでクリーン シャットダウン状態にするために一部のログ ファイルが必要になりますが、他のログ ファイルは必要ない場合があります。 ErrCheckLogs 関数は、データベースを最新の状態にするために必要な最も古いログ ファイルと最新のログ ファイルの両方を決定します。
ErrCheckLogs 関数は、ErrInit 関数に渡したものと同じに、指定したパス内にある指定した 3 文字のベース ファイル名を持つすべてのログ ファイルを検証します。
ログ ファイルにエラーが見つからない場合、ErrCheckLogs は errSuccess を返します。
必要とされるログ ファイルのいずれかに破損が見つかると、ErrCheckLogs はエラーを返します。
必要とされる最古のログ ファイルよりも古いログ ファイルにのみエラーが見つかった場合、この関数は errSuccess を返して、戻り値パラメーター pfOnlyUnnecessaryLogCorrupt を true に設定します。 アプリケーションでは、そうした古いログ ファイルの一部にエラーが存在することを認識する必要があり、該当する場合にはユーザーに警告するようにします。 いずれにしても、こうしたエラーがデータベースの全体的な整合性に影響することや、ログ フォワードの実行が成功するかどうかに影響することはありません。
ErrCheckLogs が必要であると判断した最古のログよりも後に作成されたログ ファイルにエラーが見つかった場合、この関数はエラーを返します。 データベースを最新状態にするために必要になるログ ファイルよりも後に生成されたものにログ ファイル エラーが見つかった場合にも、エラーが返されます。 識別されたログ ファイルを使用してデータベースをクリーン シャットダウン状態にすることは可能ですが、それよりも後の破損したログ ファイルで指定されたトランザクションは適用されないため、データベースの復元時にデータを損失することになります。
CChkSGFiles オブジェクトでは、ErrInit 関数で登録したすべてのログ ファイルが実際に確認されたかどうかを判別します。 正常に確認されなかったログがあると、ErrTerm 関数はエラーを返します。
マルチスレッド アプリケーションで CHKSGFILES を使用している場合は、そのアプリケーションのマルチスレッドの部分で ErrCheckLogs 関数を呼び出すことができますが、CCheckSGFiles オブジェクトごとに 1 回しか呼び出せません。
要件
Exchange 2013 には、CHKSGFILES API の 64 ビット バージョンのみが含まれています。
アプリケーションを実行しているアカウントには、確認するデータベースとログ ファイルに対する読み取りアクセス許可が必要です。