Preciso de uma opinião..... Conexão com banco de dados fica caindo..
Em primeiro lugar boa noite pra galera que mais entende de Delphi!!! Bem pessoal é o seguinte.. Tenho uma aplicação que se conecta ao servidor mysql online uso a hospedagem do host gator.. so que depois de alguns instantes após abrir a aplicação e fazer várias operações como consulta e inserção de dados no banco tudo funcionando normal.. vem esta mensagem "MySQL server has gone away"
falei com o pessoal do hostgator e eles me falaram que se passar 300 segundos em inatividade a a conexão é derrubada automaticamente e agora o que fazer???
Detalhes..
Delphi XE5
Dbexpress
MYsql (conforme já mencionado)
falei com o pessoal do hostgator e eles me falaram que se passar 300 segundos em inatividade a a conexão é derrubada automaticamente e agora o que fazer???
Detalhes..
Delphi XE5
Dbexpress
MYsql (conforme já mencionado)
Jhonatan Amaral
Curtidas 0
Respostas
Marcos P
07/05/2015
300 segundos ou milisegundos ?
Se forem 300 segundos ( 5 minutos ), não parece ser assim tão crítico.
Faça um teste simples :
1. Conecte no banco
2. Inicie um loop
3. Faça um select qualquer
4. Faça um sleep de 10 segundos
5. Itere o loop
Se a conexão ficar no ar por mais de cinco minutos, você comprova o que lhe foi informado pelo pessoal da hospedagem.
Você também pode aumentar o sleep para mais de 5 minutos e verá a conexão ser derrubada...
( só pra confirmar )
Se for isso mesmo, você pode criar uma thread no sistema, que rode direto e a cada xxx segundos ( isso pode ser uma parâmetro variável do sistema ), teste se existe alguma conexão ativa e ( caso não exista ) derrube e refaça a conexão ( ou, de maneira alternativa, rode uma query qualquer para manter a conexão ativa...).
Se forem 300 segundos ( 5 minutos ), não parece ser assim tão crítico.
Faça um teste simples :
1. Conecte no banco
2. Inicie um loop
3. Faça um select qualquer
4. Faça um sleep de 10 segundos
5. Itere o loop
Se a conexão ficar no ar por mais de cinco minutos, você comprova o que lhe foi informado pelo pessoal da hospedagem.
Você também pode aumentar o sleep para mais de 5 minutos e verá a conexão ser derrubada...
( só pra confirmar )
Se for isso mesmo, você pode criar uma thread no sistema, que rode direto e a cada xxx segundos ( isso pode ser uma parâmetro variável do sistema ), teste se existe alguma conexão ativa e ( caso não exista ) derrube e refaça a conexão ( ou, de maneira alternativa, rode uma query qualquer para manter a conexão ativa...).
GOSTEI 0
Mateus Carvalho
07/05/2015
Cara, eu tive o mesmo problema, e eu resolve assim:
Coloquei um timer, e no timer o seguinte código:
Ai, toda vez que eu conectava no servidor, eu habilitava esse timer. Aqui funcionou.
Coloquei um timer, e no timer o seguinte código:
fdconnection1.ping;
Ai, toda vez que eu conectava no servidor, eu habilitava esse timer. Aqui funcionou.
GOSTEI 0
Hardsoft Informática
07/05/2015
Mas como assim, habilitava o timer???? Se poderia explicar melhor, estou com esse problema...
GOSTEI 0