TOO MANY CONNECTIONS MYSQL
Citação::
Neste topico o FoxMan postou uma solucao...
http://vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=442770&pagina=2
Tive problemas semelhante, e a forma que encontrei foi matando a conexão no mysql e não através do meu aplicativo.
Segue o link que o Kurtgu postou , lá explico como fiz.
Pois utilizo o mesmo banco de um ERP desenvolvido em VB6 só que o desenvolvedor não fechou as conexões com os bancos, então tem um monte de
Sleep na processlist..
Vamos supor que eu tenha deixado alguma conexão em aberto, como eu descubro? pois ta cheio de conexão por causa do ERP..
E outra coisa no Java meu professor cria um Try Catch para fechar a conexão com o banco, caso houver uma exception no .Close da conexão com o banco
isso é realmente necessário? ou é firulinha de Java Developer? huahua
Citação::
Ja aproveitando o tópico teria alguma forma de eu rastrear as conexões do meu sistema?
Pois utilizo o mesmo banco de um ERP desenvolvido em VB6 só que o desenvolvedor não fechou as conexões com os bancos, então tem um monte de
Sleep na processlist..
Vamos supor que eu tenha deixado alguma conexão em aberto, como eu descubro? pois ta cheio de conexão por causa do ERP..
E outra coisa no Java meu professor cria um Try Catch para fechar a conexão com o banco, caso houver uma exception no .Close da conexão com o banco
isso é realmente necessário? ou é firulinha de Java Developer? huahua
A solução seria vc criar um método para matar conexões adormecidas.No entanto vc pode acabar matando uma conexão de um cara que levantou e foi tomar um café, ou de um processo que ainda esteja sendo executado a mais tempo.
Para mostrar as conexões ativas utilize :
SELECT 'ID', 'USER', 'HOST', 'DB', 'COMMAND', 'TIME', 'STATE', LEFT('INFO', 51200) AS 'Info' FROM 'information_schema'.'PROCESSLIST';
Neste caso pode colocar uma clausula where utilizando o campo TIME para passar um parametro.
Citação::
Mas isso seria feito por onde se não é pelo aplicativo ? Não entendi
Talvez eu não tenha me expressado corretamente.
Quando digo [Ô]matando a conexão no mysql[Ô] quero dizer que não será meu aplicativo que irá finalizar a conexão, mas sim um comando [Ô]KILL[Ô] ,que quando rodado no mysql ,ele fecha a conexão. No entanto será meu aplicativo que irá executar tal comando.
Citação::
:
Ja aproveitando o tópico teria alguma forma de eu rastrear as conexões do meu sistema?
Pois utilizo o mesmo banco de um ERP desenvolvido em VB6 só que o desenvolvedor não fechou as conexões com os bancos, então tem um monte de
Sleep na processlist..
Vamos supor que eu tenha deixado alguma conexão em aberto, como eu descubro? pois ta cheio de conexão por causa do ERP..
E outra coisa no Java meu professor cria um Try Catch para fechar a conexão com o banco, caso houver uma exception no .Close da conexão com o banco
isso é realmente necessário? ou é firulinha de Java Developer? huahua
A solução seria vc criar um método para matar conexões adormecidas.No entanto vc pode acabar matando uma conexão de um cara que levantou e foi tomar um café, ou de um processo que ainda esteja sendo executado a mais tempo.
Para mostrar as conexões ativas utilize :SELECT 'ID', 'USER', 'HOST', 'DB', 'COMMAND', 'TIME', 'STATE', LEFT('INFO', 51200) AS 'Info' FROM 'information_schema'.'PROCESSLIST';
Como devo fazer? está aparecendo alguns na tabela command [Ô]Sleep[Ô], devo matar todos que estão WHERE command = [Ô]SLEEP[Ô] ? ou utilizar o TIME na clausula where, tem uns campos TIME com valor 5102, 1900, etc, ai devo matar a conexão WHERE TIME > 3000 ?
Grato!
Citação:Como devo fazer? está aparecendo alguns na tabela command [Ô]Sleep[Ô], devo matar todos que estão WHERE command = [Ô]SLEEP[Ô] ? ou utilizar o TIME na clausula where, tem uns campos TIME com valor 5102, 1900, etc, ai devo matar a conexão WHERE TIME > 3000 ?
Grato!
é seria mais ou menos isso mesmo....