2007年01月10日

Windows 2000 イベントログ読み取り失敗(EvntAgnt 3006、リターンコード 1500)

Windows 2000 コンピュータで、アプリケーションログに以下のようなイベントが記録される場合がある。

種類 : 警告
ソース : EvntAgnt
イベント ID : 3006
説明 : ログイベントレコードの読み取り中にエラーが発生しました。指定されたハンドルは 654321 です。ReadEventLog からのリターンレコードは 1500 です。
 
種類 : エラー
ソース : EvntAgnt
イベント ID : 3005
説明 : ログファイルの終わりの配置エラー - ログの終わりの検出に失敗しました。指定されたハンドルは 654321 です。ReadEventLog からのリターンレコードは 1500 です。
 
種類 : 警告
ソース : EvntAgnt
イベント ID : 3001
説明 : ログファイルは末尾に配置されませんでした。

これらのイベントは、SNMP 拡張エージェントである EvntAgnt が SNMP サービス起動時にイベントログの読み込みを行った際に、イベント中に見られるリターンコード 1500(ERROR_EVENTLOG_FILE_CORRUPT)のエラーが発生したことを示す。EvntAgnt は、イベントログにイベントが記録された際に、SNMP トラップを発生させるための SNMP 拡張エージェントであり、Windows 2000 では簡易ネットワーク管理プロトコル(SNMP)をインストールすると自動的に追加されるモジュールである。

ソースが EvntAgnt、リターンコードが 1500 のエラーが発生する原因としては、以下のものが考えられる。

1. イベントログファイルが破損している
2. EvntAgnt が、イベントログファイルの読み書きを行った際に、特定のタイミングで別のユーザー/システム/アプリケーションがイベントの削除を行った
3. EvntAgnt が、イベントログファイルの読み書きを行った際に、特定のタイミングで別のユーザー/システム/アプリケーションがイベントの書き込みを行った

これらのイベントが、SNMP サービス起動時に毎回記録されるような場合には、上記 1. に該当すると考えられ、その場合にはイベントログの初期化を行う必要がある。一方、毎回記録されない場合には上記 2. または 3. が原因であると考えられ、まれに発生する一時的な現象であり、これらのイベントが記録されてもシステムに悪影響はない。

○ 対処方法

リターンコード 1500 は、ERROR_EVENTLOG_FILE_CORRUPT、つまりイベントログが壊れているというステータスコードであるが、上記のようにこのコードが返されてもイベントログが破損していていることを意味しないことがある。以下の方法で、イベントログが破損しているか確認することができる。

イベントビューアを用いてイベントログが正しく開けるか確認を行う
EvntAgnt がイベントログを読み込む際に使用する ReadEventlog 関数を使用して、イベントログの読み込みを行い、正常に読み込みが完了する確認する。Windows 2000 リソースキットに含まれる elogdmp.exe は、ReadEventlog 関数を使用してイベントログの読み込みを行うため、これを用いることでも確認が可能である。

【参照】 マイクロソフト 技術情報 836843

posted by w@ko at 23:11|  ・Windows一般 | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。