FWATCHの使い方

※ 以下はVer1.8について記述したものです。

トラブルシューティング

過去にお問い合わせいただいた件で多かったものです。

まず、FWatchを最初に設定するときにはログレベルを5以上にして動作確認されることを推奨いたします。

ログは「日 時 (ログレベル) [Win32スレッドID] メッセージ」の形式で記録されます。

既定ではログファイルは日付が変ると*.bakファイルに移動(上書き)され、ログファイルはサイズが0に戻ります。

また、*.bakファイルは一世代しか作成されません。

したがって、連続運用する場合でもログファイルがあふれるということはありません。

(FWatchではなく何らかのログツールでログを採取・待避する場合は、設定ファイルでfwatchがログをローテートしないように、またログファイルを常に閉じるように調整してください。)

たとえば、監視ディレクトリが存在しない場合は以下のようなエラーが記録されます。

*2011/02/02 22:52:08.280 (0) [1904] ファイル監視ハンドルの作成に失敗しました。
ERROR CODE=2 指定されたファイルが見つかりません。

*2011/02/02 22:52:08.296 (0) [1904] ディレクトリの最初のファイルの取得に失敗しました。
dir=D:\Media\Desktop\fwatchtest\testdir\
ERROR CODE=3 指定されたパスが見つかりません。

たとえば、アプリケーションが見つからない場合は以下のようなエラーが記録されます。

*2011/02/02 22:52:50.826 (2) [1904] アプリケーションを起動します。
Verb=OPEN
AppName=D:\Media\Desktop\fwatchtest\testcmd.cmd
Parameter="D:\Media\Desktop\fwatchtest\testdir\"  ".\新しいテキスト ドキュメント.txt"  "."  0  1  0  0  0
CurrentDir=D:\Media\Desktop\fwatchtest\testdir\
*2011/02/02 22:52:50.842 (0) [1904] アプリケーションの起動に失敗しました。
ERROR CODE=2 指定されたファイルが見つかりません。

※ 上記のERROR CODE=???は、通常はWin32のエラーコードです。MSDNでエラー理由を調べることができます。

FWatchの仕組みとパラメーターの調整方法

FWatchはファイルが更新されたことを検知して何らかのアクションを起こすものですが、ファイルを操作しているアプリケーションと直接連携しているわけではありません。

アプリケーションによってファイルを一括して書き込むものもあれば、複数回にわけて追記的に作成するもの、あるいは一旦削除したのちにワークファイルを作成してから結合するもの、など様々です。

しかし、FWatchは、あくまでも、ファイルの状態だけをみて、更新を判断しています。(そのため、ファイルを作成するアプリケーションであれば、アプリケーションの種類は問いません。)

これらのファイルの作成方法の違いを吸収できるようにFWatchには監視方法に、いくつかの調整項目を持たせています。

これらのパラメーターを調整するためには、FWatchが、内部的に、どのような処理をしているのか理解する必要があります。

FWatchの仕組みとして以下の点が重要となります。

FWatchは上記のような原理でファイルを監視しているため、マシンへの負荷とファイル更新を正しく判定できる最小値のバランスを調査しながら調整してゆく必要があります。

とはいえ、ローカルマシン上の単一フォルダで1000個程度のファイルの通常の更新チェックをするのであれば、デフォルト値で十分使えるものと思われます。

これらの調査・調整を行う場合には、ある程度詳細なログ出力を行いながら実験を繰り返す必要があります。(ただし、ログ出力も、それなりに時間のかかる処理だということに注意してください。)


Copyright 2010 seraphy@seraphyware

Valid HTML 4.01 Strict 正当なCSSです! SourceForge.JP