Galera, estou com esse problema no meu aplicativo:
06/12/2011 07:34:09,005 32092830 [main] ERROR root - Principal-mainjava.net.SocketException: Too many open files
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
at java.net.ServerSocket.implAccept(ServerSocket.java:462)
at java.net.ServerSocket.accept(ServerSocket.java:430)
at br.com.ces.svias.principal.Principal.main(Principal.java:68)
o que ja tentei para resolver esse problema:
1º Criei um timer no aplicativo que de tempo em tempo varre a lista dos equipamentos que estao conectados, verefico se eles estão conectados em caso negativo fecho a conexao java e retiro ele da lista.
Quando eu aplico esse comando: socket.isClosed(); ele sempre me retorna false, ja cheguei fazer o teste com o meu equipamento embarcado, assim que o meu equipamento conectava, eu desligava o equipamento da tomada e aguardava o ciclo do timer, quando o ciclo do timer chamava o meu equipamento no comando citado acima ele retornava false, mesmo o equipamento desligado.
2º Uso linux ubuntu, ja passei o numero maximo de conexoes para 100000. Sendo que o numero de equipamentos simultaneos nao passa de 7 mil.
3º Quando vou rodar a minha aplicação eu chamo ela assim: java -server -jar MinhaAplicacao.jar
Galera, nao sei mais o que eu faço. Ja entreguei para Deus!!!
Eu nao quero fazer isso em C++, pq eu nao tenho os macetes de ligar o C++ no Mysql e sem contar que vou ter que fazer tudo de novo.
Att