log4j による古い NFS fila ハンドル エラー

log4j による古い NFS fila ハンドル エラー

独立して実行されながら同じログ ファイルに書き込む Java プログラムのインスタンスがいくつかあります。

ログ ファイルが複数のプロセス インスタンスによってローテーションされ、書き込まれているときに、まれに古い NFS ファイル ハンドル エラーが発生することがありました。

現在、インスタンスごとに個別のログ ファイルを用意することを検討しています。この問題をすでに経験していて、より良い解決策を持っている人はいますか。

ありがとう、ナイン

答え1

NFSはないPOSIX準拠のファイルシステムです。非常に近いPOSIX 準拠には、多くの人がつまずく点がほとんどです。非準拠が明らかになる領域の一つは、ファイル、特にディレクトリの削除と名前変更に関する部分です。

アプリケーションが NFS で動作するように特別にコーディングされていない限り、2 つのリモート プロセスが NFS ボリューム上の同じファイルにアクセスしないようにすることをお勧めします。

答え2

はい、NFS 経由で別のホストによって開かれているファイルを削除すると、このエラーが表示されます。

この場合、ログ ファイルを分離する (または syslog を使用する、または NFS にログを記録しない) のが最善のアイデアのようです。

関連情報