ファイル ハンドルまたはおそらくストリームを適切に閉じていないコードベースに問題があります。最終的に、非常に重い負荷がかかると、TooManyOpenFiles 例外が発生します。lsof の出力に基づいて、リークがどこにあるか (ロギング システム内) はかなりわかっていますが、私の質問は、完了時にリソースが適切に閉じられていることを確認する単体テストを作成するにはどうすればよいかということです。JRE を照会して、現在開いているファイルの数を調べる方法はありますか? ファイル操作を傍受して監視できるようにすることはできますか?
すべてのファイル I/O を管理し、参照をカウントし、そのように閉じていることを確認するために、コードをインストルメント化する必要があると思いますが、上記のアイデアに似たトップダウンのソリューションを誰かが知っている場合、それは大きな助けになるでしょう!