Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido] Desconexão Com O Bd Sqlserver


fjuniorinfo

Pergunta

Companheiros,

Temos um aplicativo em Delphi 5 que acessa o SQLServer (local ou remoto) pelo BDE. Um dos nossos clientes nos reportou um problema que a principio parecia ser simples. Ele dizia que se ficasse algum tempo com nosso sistema funcionando ele dava um erro semelhante a "falha de conexão com banco de dados/sem conexao com servidor" e só reiniciando o computador para voltar ao normal.

Então fui lá e vi que nas propriedades da instância do banco havia um limite para "Query time out" que era de 600 sec, que deve ser o padrão. Alterei para 0 que o SQLServer entende como ilimitado. Só que o problema persistiu. Ao reiniciar a máquina desconectada ela voltava a conectar mas com algum tempo (uns 20 minutos) ele voltava a dar o problema.

Perguntei ao CPD sobre a existência de firewall no servidor e ele me disse que não tinha nada de errado com essa parte, mesmo porque só passa por ele pacotes para a internet. Pingamos sem problemas o servidor no momento do erro.

Reinstalei o BDE, trocamos o anti-virus, passei um anti-virus, desabilitamos o firewall da máquina, instalamos o SQL Server em outro servidor, executamos o programa com o login do administrador da rede e local e nada.

Percebi ainda 2 coisas: 1 - Quando dá o erro de conexão, se houver outro programa na mesma máquina acessando o banco, ele continua sem problemas. É como se corrompesse a memória alocada para este processo; 2 - Na hora do erro gerei um alias ODBC e conectou sem problemas.

Por último agora trocamos a máquina que estava com o problema e instalamos o MSDE nela, resolveu mas nas outras máquinas ocorreu o erro.

Alguém se habilita a me ajudar?

Já agradeço a atenção.

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0
Guest --Jonas --

Acho que o problema está na instalação do SQLServer

Caso tenha instalado em sua máquina algum cliente do SQLServer 16 bits, poderá ter algum tipo de conflito com drives de 32 bits. Portanto, desinstale todos os clientes SQLServer e instale somente o cliente SQLServer 32 bits.

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Jonas,

Creio que não, cheguei a instalar em outra máquina que não tinha SQLServer.

Obrigado pela força.

Acho que o problema está na instalação do SQLServer

Caso tenha instalado em sua máquina algum cliente do SQLServer 16 bits, poderá ter algum tipo de conflito com drives de 32 bits. Portanto, desinstale todos os clientes SQLServer e instale somente o cliente SQLServer 32 bits.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --

Tenta outra: quando ocorrer o erro na no painel de controle em ferramentas administrativas e clique em visualizar eventos; observe a pasta aplicativo, sistema e segurança ... talvez de para descobrir o que esta acontecendo.

Link para o comentário
Compartilhar em outros sites

  • 0
Temos um aplicativo em Delphi 5 que acessa o SQLServer (local ou remoto) pelo BDE.
voce está utilizando um componente TDatabase? Como está definida a propriedade KeepConnection?

No BDE seu alias está configurado utilizando drive nativo (MSSQL) ou ODBC (SQL Server)?

Link para o comentário
Compartilhar em outros sites

  • 0
Tenta outra: quando ocorrer o erro na no painel de controle em ferramentas administrativas e clique em visualizar eventos; observe a pasta aplicativo, sistema e segurança ... talvez de para descobrir o que esta acontecendo.

Verifiquei e vi isso:

O sistema de segurança não pôde estabelecer uma conexão segura com o servidor SQLClient. Nenhum protocolo de autenticação estava disponível.

O sistema de segurança detectou uma tentativa de ataque de desatualização do servidor SQLClient. O código de falha do protocolo de autenticação Kerberos foi "Não há servidores de logon disponíveis para atender à solicitação de logon.

Só que não me ajudou muito.

Temos um aplicativo em Delphi 5 que acessa o SQLServer (local ou remoto) pelo BDE.
voce está utilizando um componente TDatabase? Como está definida a propriedade KeepConnection?

No BDE seu alias está configurado utilizando drive nativo (MSSQL) ou ODBC (SQL Server)?

Está "true".

O sistema vem rodando bem em outros clientes. Começo a acreditar que pode ser uma praga digital. Vou passar mais de um anti-vírus no computador.

Jonas,

Normalmente as conexões SQL devem ser rápidas, ou seja, a conexão deve ser feita no momento da solicitação do usuário.

Mas pelo que você disse, a mesma aplicação não consegue mais acessar a menos que voce reinicializa a máquina, né ?

Isso mesmo. Fiz um teste e abri um alias no SQL Explorer (dbexplor.exe) junto com meu aplicativo. Quando o sistema perde conexão, faço um select qualquer no alias aberto no SQL Explorer e ele me retorna normalmente. Quando eu fecho o alias e tento abrí-lo novamente dá o erro.

Link para o comentário
Compartilhar em outros sites

  • 0
Resolvemos o problema :)

Já sem saber o que fazer, verificamos uma dll chamada NTWDBLIB que estava desatualizada. Tinhamos o MSDE 2000 mas a NTWDBLIB.DLL era do MSDE 7. Atualizamos e foi benção.

Obrigado por compartilhar a solução do problema.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...