dah esse erro
java.sql.SQLException: Data source rejected establishment of connection, message from server: "Too many connections"
mas eu sei o por que da o erro soh que ele nao tem motivo pra dar!!
eu executo meu programa no netbeans dai ele fica chamando numa thread infinita uma tela
e com isso acaba abrindo conexoes e o mysql nega fogo!
vou postar a maneira como a conexão do sistema é feita dai voces me deem uma opiniao de como eh a melhor maneira de fazer e repassar a conexao para as telas do sistema
por que eu peguei o sistema anando e nao seria muito esperto da minha parte mudar tudo
mas preciso de opinioes vlw!!!
No contrutor da classe que quero que teje conexao é feito o seguinte
//chama o metodo acima...Conexao=nomeDaClasse.Conecta(Conexao);try{st=Conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);}catch(SQLExceptionex){ex.printStackTrace();}
Tudo que você abre tem de fechar; o garbage collector não toma conta tão bem dessas coisas quanto você mesmo.
Ele só toma bem conta da memória, não de conexões do banco de dados ou de arquivos abertos. Ele só fecha a conexão ou fecha arquivos quando você está com problemas de memória também.
Portanto, feche suas conexões quando for necessário. Não as deixe abertas sem necessidade.
janjan
tah ateh por ai eu sei! nao tem nada fechado no sistema!
mas ele nem se dah o trabalho de executar coisa que tava fazendo ateh a pouco
estou soh fazendo relatorios agora
e ele me trava assim!!! me desanima
dah vontade de excluir tudo e começar do zero!!
que droga…
janjan
Olha oque ele faz
no erro
java.sql.SQLException: Data source rejected establishment of connection, message from server: "Too many connections"
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:991)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2544)
at com.mysql.jdbc.Connection.<init>(Connection.java:1474)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at sgco.UtilJava.Conecta(UtilJava.java:109)
at sgco.LocalizaDespesa.<init>(LocalizaDespesa.java:39)
at sgco.movCaixa2.<init>(movCaixa2.java:37)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.MenuPrincipal.<init>(MenuPrincipal.java:21)
at sgco.Main.main(Main.java:30)
Exception in thread "main" java.lang.NullPointerException
at sgco.LocalizaDespesa.<init>(LocalizaDespesa.java:42)
at sgco.movCaixa2.<init>(movCaixa2.java:37)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.movCaixa2.<init>(movCaixa2.java:41)
at sgco.TelaRel.<init>(TelaRel.java:249)
at sgco.MenuPrincipal.<init>(MenuPrincipal.java:21)
at sgco.Main.main(Main.java:30)
fica chamando só essas telas
T
thingol
Primeiro feche as conexões, que é esse o seu problema (ele está gritando na sua cara para ser resolvido).
Depois, reinicie o MySQL e teste novamente o seu programa. OK?
janjan
Mas tchê!!
ele soh arrebenta as conexoes por que ele executa as telas abrindo as conexoes até dar pau…
se elas nao abrissem ateh estourar nao matava o mysql…
esse eh o detalhe
e te respondendo eu dei um stmt.close() nelas!
T
thingol
Um construtor (não sei se sgco.TelaRel ou sgco.movCaixa2) está chamando recursivamente o outro (sgco.movCaixa2 ou sgco.TelaRel). Conserte isso.
T
thingol
Falei para fechar a conexão, não somente o statement. O seu MySQL esgotou o número de conexões possíveis, e não vá reclamar com o pessoal da MySQL (que casualmente é da Sun), porque essa limitação do número de conexões é dada pelo próprio sistema operacional, que não agüenta uma quantidade infinita de sockets.
janjan
eu instancio as duas classes sim
na classe do movCaixa eu instancio a telaRel
e na TelaRel instancio a movCaixa
mas em nenhum dos casos instancio no construtor
instancio somente na classe!!!
T
thingol
Eu falei “construtor” mas pelo jeito é na declaração da variável de instância. É que pelo stack trace não tenho como saber se é dentro do construtor ou na variável de instância. Mas dá para ver que isso que você fez está claramente errado, porque você só deve usar coisas recursivas se souber o que está fazendo.
janjan
sei!
bah vlw
vo ter que arrumar outra maneira de fazer essas chamadas
obrigado pelas dicas!!
to meio que frustrado hoje por causa disso, poso ter sido arrogante! (foi mal!)
flw
abraços