TOO MANY CONNECTIONS MYSQL

FOXMAN 22/09/2015 20:05:21
#451710
Resposta escolhida
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.
FBGSYSTEMS 22/09/2015 20:19:34
#451711
Mas isso seria feito por onde se não é pelo aplicativo ? Não entendi
MESTRE 23/09/2015 07:31:01
#451724
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

FOXMAN 23/09/2015 09:11:03
#451732
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.



MESTRE 24/09/2015 09:41:54
#451772
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!
FOXMAN 28/09/2015 13:30:24
#451870
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....
Página 2 de 2 [16 registro(s)]
Tópico encerrado , respostas não são mais permitidas