Ir para conteúdo
  • Cadastre-se

dev botao

Queda de conexão com firebird 2.5 após ficar ociosa por 5min


7Master

Recommended Posts

Fala aí galera, blz?
Estou com um problema de queda de conexão com firebird 2.5. 
Utilizo o TSQLConnection Delphi XE para fazer a conexão em um servidor remoto. Se a conexão ficar ociosa por 5min e tentar fazer qualquer coisa, recebo uma mensagem informando que a conexão caiu. 
Existe algum parâmetro para fazer aumentar esse tempo ou alguma solução para se reconectar sem que seja preciso fechar a aplicação?

Mensagem de erro:

Unable to complete network request to host "174.222.52.222".


Error reading data from the connection.

erro.gif

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Membros Pro

Boa tarde,

Trate isso no OnError da Conexao.

var
  I: Integer;
begin
  RaiseException := false;
  for I := 0 to aErrorCodes.Count - 1 do
    begin
      if aErrorCodes[I] = '335544721' then {DESCONECTOU DA REDE}
        begin
          try
            tmRECONECTABANCO.Enabled := true;
          except

          end;
        end;
    end;
end;

no tmRECONECTABANCO, coloque o seguinte:

        if dm.BD.Connected then
          dm.BD.Connected := false;
        Sleep(100);
        if dm.BD.Connected then
          dm.BD.ForceDisconnect;
        Sleep(100);
        dm.BD.Connected := true;

 

Link para o comentário
Compartilhar em outros sites

  • 5 anos depois...
  • Moderadores
14 minutos atrás, ThiagoHB disse:

Não tem esses eventos no TSQLConnection. como voce trabalho nesse caso?

 

não tem mesmo.

terá que procurar alteranativas para tratar

veja por exemplo https://pt.stackoverflow.com/questions/346999/multithreading-com-pool-de-conexão-duplicate-database-name-xxx

image.png

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Uma conexão de 5 minutos no firebird em um servidor remoto, não parece ser uma boa idéia, muito menos se esta ociosa, acredito que o mais correto seria trabalhar com conexões curtas, transações mais rapidas, abra a conexão, utilize o que precisa e feche. 

Considere uma api, garanto que tera muito menos dor de cabeça. 

Ambiente com bancos remotos, devem ser em camadas, sem duvida.

  • Curtir 1

Link para o comentário
Compartilhar em outros sites

  • 5 semanas depois ...
  • Membros Pro
Em 10/09/2018 at 07:52, 7Master disse:

Fala aí galera, blz?
Estou com um problema de queda de conexão com firebird 2.5. 
Utilizo o TSQLConnection Delphi XE para fazer a conexão em um servidor remoto. Se a conexão ficar ociosa por 5min e tentar fazer qualquer coisa, recebo uma mensagem informando que a conexão caiu. 
Existe algum parâmetro para fazer aumentar esse tempo ou alguma solução para se reconectar sem que seja preciso fechar a aplicação?

Mensagem de erro:

 

erro.gif

Eu recomendo você alterar as opções de energia:

Painel de Controle\Hardware e Sons\Opções de Energia\Editar Configurações do Plano

Depois Alterar configurações do plano:
Coloque como NUNCA a opção SUSPENDER ATIVIDADE DO COMPUTADOR, desta forma mesmo que desligue o video, não vai cortar as conexões.

Depois vá em "Alterar Configurações de Energia Avançadas":
Nas opções de Suspender, coloque todos como NUNCA.
 

No componente de conexão você pode ver se tem algum parâmetro para tentar reconectar.

  • Curtir 1

Valter Patrick

Gerente de Projetos na empresa CTEC

(33)98400-0936

GitHub: https://github.com/valterpatrick

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...