初めてここに質問をさせて頂きます。
Windows2008(SP無し)環境で主題の現象が発生します。
常駐しているWindowsサービスがログファイルを作成し、中にテキストを不定期に書き出します。
エクスプローラを別に起動し、このログファイルが存在するフォルダを表示させて「更新日時」の列を見ていますと、ログファイル内にテキストが書き込まれているはずなのに「更新日時」の列は更新されない(F5キーを押しても変わらず)という現象が発生します。
この原因とWindows2003以前のように振る舞わせる方法についてご教授頂けますでしょうか。
ログファイルを掴んでいるプロセス(Windowsサービス)を停止しますとそのときにログファイルの「更新日時」も更新されることを確認しました。
このときの「更新日時」は、最後にログファイルに書き込みが行なわれた時刻になっていました。
ログファイルを掴んでいるプロセスが起動したままの状態でも、メモ帳などの他プロセスからログファイルを参照しましたら、そのときにログファイルの「更新日時」も更新されることを確認しました。
このときの「更新日時」も、最後にログファイルに書き込みが行なわれた時刻になっていました。
また、ログファイルを掴んでいるプロセスが起動したままの状態でも、1時間~数時間放置していますとログファイルの「更新日時」が更新されることがありました。
どうもOSは「いつファイルが更新されたか」という情報は持っているようですが、それが反映されていないように思われます。
Windows2003以前のOSではファイルの内容が書き込まれたらほぼ即時(厳密には若干のタイムラグはありますが)でファイルの「更新日時」にも反映されていました。
私が使用しているWindowsサービス固有の問題かどうかを確認するために複数のソフトウェアでテストをしましたが、いずれも再現しましたのでWindows2008側の事象と考えられます。
fsutil behavior set disablelastaccess や
fsutil behavior set memoryusage での設定変更、
ディスクへのファイル書き込みをライトバックからライトスルーへ変更したり等試行しましたが現象は解消できませんでした。
背景:
ある監視ツールで幾つかのログファイルに更新があったかどうかを監視したいのですが、このツールはファイルの「更新日時」をチェックしているようです。
しかし主題のような事象が発生しているために常駐型ソフトウェアのログファイルの監視が出来なくなっております。
以上 宜しくお願い致します。