Fonte 1: http://dicasjboss.blogspot.com.br/2007/09/javanetsocketexception-too-many-open.html Show archive.org snapshot
Fonte 2: http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/ Show archive.org snapshot
Sobre as seguintes exceções:
- FileNotFoundException: ... (Too many open files)
- FileNotFoundException: ... (Muitos arquivos abertos)
- java.net.SocketException: Too many open files
- java.net.SocketException: Muitos arquivos abertos
A exceção pode ocorrer se a quantidade de arquivos que você está processando ultrapassar o limite determinado pelo SO.
O SO tem um limite de numero de arquivos que podem estar abertos simultaneamente, no caso do ubuntu o limite é de 1024.
Para ver o do seu computador (linux) execute no terminal:
ulimit -a # ver os parametros que estao definidos
ulimit -n # ver o numero de arquivos abertos
Para aumentar basta seguir os seguintes passos:
//abra o arquivo /etc/security/limits.conf e adicione as seguintes linhas:
* soft nofile 9000
* hard nofile 65000
// onde o ' * ' diz respeito ao usuário, ou seja, estas configurações serão utilizadas por todos
// os usuários do computador (exceto o root). Pode ser substituído pelo nome de um usuário.
//Para ubuntu:
//por ultimo adicione a seguinte linha no arquivo /etc/pam.d/common-session
session required pam_limits.so
//Para Red Hat edite o arquivo /etc/pam.d/login
session required /lib/security/pam_limits.so
//reinicie o computador para aplicar a novidade em todo o sistema (deslogar um usuário e logar novamente já terá as alterações aplicadas)
Posted by Victor Carvalho to ZeroGlosa (2013-05-21 14:58)