linux中,每个socket连接都使用文件描述符进行标识,文件描述符属于系统资源,存在使用上的限制;缺省情况下JBoss能使用的最大描述符数是系统默认的最大文件描述符数(通过命令ulimit -H -n来获得),当连接数达到一定规模,使用的socket连接超过最大描述符的数量时就会出现此错误。
解决方法:
1、编辑$JBOSS_HOME/bin目录下的run.conf;
2、定位到:
#MAX_FD="maximum"
去掉注释,将其修改为所需的数值,例如:将文件描述符的最大值设置为10000;
MAX_FD=10000