Servidor de BD cai! Como tratar erro?
Olá.
Tenho uma aplicação que quanto o servidor de BD cai, aparece o seguinte erro:
Como tratar o erro de forma amigavel?
Tenho uma aplicação que quanto o servidor de BD cai, aparece o seguinte erro:
Unable to Complete network request to host xxxx
Error writing data to the connection
Foi forçado o cancelamento de uma conexão existente pelo host remoto
Como fazer para tratar esse erro? Isto é, aparecer uma mensagem agradável para o usuario, como por exemplo:MessageDlg( "O servidor não está acessivel!", mtErro, [mbOK], 0 ); Application.Terminate;
Como tratar o erro de forma amigavel?
Marcelo
Curtidas 0
Respostas
Marcelo
30/03/2007
So para lembrar... estou falando do servidor de banco de dados (software), e não o servidor na REDE (máquina).
GOSTEI 0
Bon Jovi
30/03/2007
Serviço do servidor de banco de dados ou sua conexão com o bd que cai com o sistema ja aberto? Caso for sua conexao, entao nao mantenha ela aberta o tempo todo, somente durante as requisições.
//conecte ADOConnection1.Connected := True; try //faz tudo que tiver que ser feito pra requisicao.. //selects jogando pra memoria/clientdataset //inserts.. //updates.. //etc.. finally //libere a conexao no final do procedimento ADOConnection1.Connected := False; end;
GOSTEI 0
Marcelo
30/03/2007
Prezado [b:84ca34418d]Bon Jovi[/b:84ca34418d].
Esse artifício é utilizado no ato da conexão, isso já faço. O que quero saber é o que fazer no caso do servidor de banco de dados (FB) cair, ser reiniciado, ser parado, etc. durante a navegação do sistema, por exemplo.
Quando isso ocorre, aparece uma mensagem como a citada acima, e consequentemente faz com que o sistema fique dando pau.
Quero tratar isso de forma amigável, de modo a forçar uma nova conexão no servidor de banco de dados (FB) ou sair do sistema.
Alguém pode me ajudar com isso?
Desde já agradeço pela atenção.
Esse artifício é utilizado no ato da conexão, isso já faço. O que quero saber é o que fazer no caso do servidor de banco de dados (FB) cair, ser reiniciado, ser parado, etc. durante a navegação do sistema, por exemplo.
Quando isso ocorre, aparece uma mensagem como a citada acima, e consequentemente faz com que o sistema fique dando pau.
Quero tratar isso de forma amigável, de modo a forçar uma nova conexão no servidor de banco de dados (FB) ou sair do sistema.
Alguém pode me ajudar com isso?
Desde já agradeço pela atenção.
GOSTEI 0
Marcelo
30/03/2007
[b:b41e7fc9dd]Obs.:[/b:b41e7fc9dd]
Serviço do servidor de banco de dados ou sua conexão com o bd que cai com o sistema ja aberto? Caso for sua conexao, entao nao mantenha ela aberta o tempo todo, somente durante as requisições.
Isso ocasionará outro problema: lentidão. Já imaginou ter que conectar e desconectar no servidor (FB) toda vez que uma transação for requisitada?GOSTEI 0
Bon Jovi
30/03/2007
Isso ocasionará outro problema: lentidão. Já imaginou ter que conectar e desconectar no servidor (FB) toda vez que uma transação for requisitada?
Se vc usar ADO com OLE DB nao terá esse tipo de problema ao reconectar, pois ele trabalha com pooling de conexões.GOSTEI 0
Bon Jovi
30/03/2007
http://forum.clubedelphi.net/viewtopic.php?t=68465
GOSTEI 0
Marcelo
30/03/2007
[quote:5a376f3fb9=´Bon Jovi´]Se vc usar ADO com OLE DB nao terá esse tipo de problema ao reconectar, pois ele trabalha com pooling de conexões.[/quote:5a376f3fb9]
Prezado Bon Jovi,
Meu sistema tem algo de 250 tabelas no banco de dados FB, e todo o sistema esta utilizando os seguintes componentes:Acho inviável fazer essa modificação em meu fonte, pois além de haver algo em torno de 400 SQLQuery´s e dos componentes já estarem configurados, em algumas ocasiões faço tratamentos especificos com os componentes, e trocá-los a essa altura do campeonato seria uma perda de muito tempo.
Será que há alguma forma de tratar isso, sem ter que mudar meus componentes?
Prezado Bon Jovi,
Meu sistema tem algo de 250 tabelas no banco de dados FB, e todo o sistema esta utilizando os seguintes componentes:
SQLConnection <- SQLQuery <- DataSetProvider <- ClientDataSet <- DataSource
Será que há alguma forma de tratar isso, sem ter que mudar meus componentes?
GOSTEI 0