永发信息网

sqlldr : java.io.IOException: error=24, Too many open files

答案:2  悬赏:20  手机版
解决时间 2021-04-19 21:59
  • 提问者网友:几叶到寒
  • 2021-04-19 07:29
sqlldr : java.io.IOException: error=24, Too many open files
最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-04-19 07:47
1. 提高linux中默认同时打开的最大文件数量(默认是1024)
最便捷的方法是在/etc/profile文件中加入ulimit -n 最大开启数量
但是这种方法无法从根本上查出什么原因导致java打开了这么多的文件

2. java端调查开启文件多的原因
 Linux下查看进程打开了哪些文件
 lsof -p  进程id    ->  打开的具体文件
 lsof -p  进程id|wc -l   ->  打开文件的数量

通过调查发现,java开了很多TYPE为FIFO(Linux中的管道)的文件,因此联想到有可能是java代码中的流没有正常关闭或者释放导致的。
而且Java在Linux下执行命令的时候需要用到Process类,这个类在使用后需要destroy()掉,否者也会导致文件数开启的过多
全部回答
  • 1楼网友:纵马山川剑自提
  • 2021-04-19 08:43
你是不是打开了多个文件,如果是用IO流读取的话,打开一个文件就够了。还有,你要Debug啊,一步一步看运行时的各种动态,Debug会让你更能了解Java运行方式和运行机制。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯