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 値は、 ErrCheckLogserrSuccess を返す場合にのみ有効です。

ulFlags

オプションの入力パラメーター。 この値は、今後の使用のために予約されています。 このパラメーターで渡された値は 0 (ゼロ) になります。

戻り値

ERR 列挙型のエラー コード。

この関数は、ログ ファイルにエラーが見つかった場合でも errSuccess を返す可能性があります。 そのため、ErrCheckLogserrSuccess を返したときには、アプリケーションでは pfOnlyUnnecessaryLogsCorrupt 戻り値パラメーターも調べる必要があります。 ErrCheckLogserrSuccess を返したときに、pfOnlyUnnecessaryLogsCorruptstrue の場合は、データベースを最新状態にする必要のないログ ファイルにのみ、1 つ以上のエラーが見つかったことを意味します。

注釈

ErrCheckDbHeaders 関数は、ErrCheckLogs 関数よりも先に呼び出す必要があります。

Exchange データベース トランザクション ログ ファイルをチェックする場合、ストレージ グループ内のデータベースをデータ損失なしでクリーン シャットダウン状態にするために一部のログ ファイルが必要になりますが、他のログ ファイルは必要ない場合があります。 ErrCheckLogs 関数は、データベースを最新の状態にするために必要な最も古いログ ファイルと最新のログ ファイルの両方を決定します。

ErrCheckLogs 関数は、ErrInit 関数に渡したものと同じに、指定したパス内にある指定した 3 文字のベース ファイル名を持つすべてのログ ファイルを検証します。

ログ ファイルにエラーが見つからない場合、ErrCheckLogserrSuccess を返します。

必要とされるログ ファイルのいずれかに破損が見つかると、ErrCheckLogs はエラーを返します。

必要とされる最古のログ ファイルよりも古いログ ファイルにのみエラーが見つかった場合、この関数は errSuccess を返して、戻り値パラメーター pfOnlyUnnecessaryLogCorrupttrue に設定します。 アプリケーションでは、そうした古いログ ファイルの一部にエラーが存在することを認識する必要があり、該当する場合にはユーザーに警告するようにします。 いずれにしても、こうしたエラーがデータベースの全体的な整合性に影響することや、ログ フォワードの実行が成功するかどうかに影響することはありません。

ErrCheckLogs が必要であると判断した最古のログよりも後に作成されたログ ファイルにエラーが見つかった場合、この関数はエラーを返します。 データベースを最新状態にするために必要になるログ ファイルよりも後に生成されたものにログ ファイル エラーが見つかった場合にも、エラーが返されます。 識別されたログ ファイルを使用してデータベースをクリーン シャットダウン状態にすることは可能ですが、それよりも後の破損したログ ファイルで指定されたトランザクションは適用されないため、データベースの復元時にデータを損失することになります。

CChkSGFiles オブジェクトでは、ErrInit 関数で登録したすべてのログ ファイルが実際に確認されたかどうかを判別します。 正常に確認されなかったログがあると、ErrTerm 関数はエラーを返します。

マルチスレッド アプリケーションで CHKSGFILES を使用している場合は、そのアプリケーションのマルチスレッドの部分で ErrCheckLogs 関数を呼び出すことができますが、CCheckSGFiles オブジェクトごとに 1 回しか呼び出せません。

要件

Exchange 2013 には、CHKSGFILES API の 64 ビット バージョンのみが含まれています。

アプリケーションを実行しているアカウントには、確認するデータベースとログ ファイルに対する読み取りアクセス許可が必要です。