プロセスごとに開いているファイルハンドルまたはファイルディスクリプタの数を増やします。
コマンドulimit -a
を使用して、プロセスごとにいくつのオープンファイルハンドルが許可されているか調べることができます。
$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 10
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 2048
virtual memory (kbytes, -v) unlimited
オープンファイル(-n)1024は、1プロセスあたり1024個のオープンファイルハンドルしか許可されていないことがわかります。 Javaプログラムがこの制限を超えると、エラーはjava.net.SocketException: Too many files open
となります。
I/O exception (java.net.SocketException)およびjava.net.SocketException: Too many open filesを参照してください。
あなたはそのファイルを5000回開いていますか?それは悪いアプローチです。値を一度だけ読み込んで、Beanshellロジックを作成して、必要に応じてその値を使用することができます。 –
いいえ、一度だけです。 CSVには5000の電子メール値が含まれています。 – Anonymous