6

Java 7 で WatchService の単純なアプリケーションを試してみました。新しいファイルのディレクトリを監視します。Linux CentOS 6で実行しています。ファイルを監視ディレクトリにコピーでき、ファイル作成イベントを取得できます。すべて良い。

これは Oracle サンプルに基づいています。

問題は、キーが不可解に無効になることです。Javadoc によると、キーのキャンセルなど、これを引き起こす可能性のあるケースがいくつかあります。キャンセルはしてません。ファイルが作成されずにプログラムが実行されている間は無効になります。そこに座っているだけで、数分以上で無効になります。ある時は、不思議なことに無効になる前に 4 日間実行されました。

Javadoc から考えられる唯一の説明は、監視されているディレクトリが削除されているか、使用できなくなっているということです。もちろん削除はしません。それは可用性を残します。

ここで、WatchService が使用している Linux 実装が、システム負荷またはその他の理由でディレクトリが使用できないことを通知するのだろうかと思います。何がこれを行うのか想像できません。システムは実際にはロードされていません。ディレクトリを含むファイルシステムは、このシステムに対してローカルです。このディレクトリは他には使用されません。

他にどのような可能性がありますか?

4

0 に答える 0