Me deparei com este erro no Linux. O erro era de configuração do SO e não da aplicação ou algo da JVM.
O Linux tem uma configuração padrão de quantidade de arquivos abertos (Open files ou File descriptors). É importante observar que conexões TCP são contadas como arquivos abertos.
Para monitorar a quantidade de arquivos abertos para um determinado processo use o comando:
lsof -p [no. do processo] | wc -l
Para ver quais são os arquivos use apenas:
lsof -p [no. do processo]
Para verificar a quantidade máxima configurada, use o comando:
ulimit -n
O valor retornado será a quantidade configurada. O default é 1024. Para alterar este valor use o comando:
ulimit -n [qtd máxima desejada]
O novo valor passara a vigorar imediatamente, porém caso a máquina seja reiniciada o valor padrão(1024) voltara. Para alterar este valor definitivamente, acrescente a linha abaixo ao arquivo /etc/security/limits.conf :
- nofile [qtd máxima desejada]
PS. Antes de aumentar esses valores verifique se esta fechando corretamente os recursos utilizados pela aplicação.
quinta-feira, 13 de setembro de 2007
java.net.SocketException: Too many open files
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário