none
Erro de timeout : Server did not respond within the specified timeout interval RRS feed

  • Pergunta

  • Em minha aplicação estou enfrentando um problema para realizar a conexão com a base de dados.

    Erro

    ************** Texto de Exceção **************
    System.Exception: Ocorreu um erro ao abrir a conexão ao banco de dados. 
    ---> Devart.Data.PostgreSql.PgSqlException: Server did not respond within 
    the specified timeout interval. 
    ---> System.TimeoutException: Server did not 
      respond within the specified timeout interval. 
    ---> System.IO.IOException: 
        Não é possível ler os dados da conexão de transporte: Uma tentativa de conexão 
        falhou porque o componente conectado não respondeu corretamente após um 
        período de tempo ou a conexão estabelecida falhou
        porque o host conectado não respondeu.

    Connection String

    <connectionStrings>    <add name="sgConnectionString" connectionString="user id = meuid;password=meupsd;host=meushot;port=5432;database=meubanco;Unicode=True ;Connection Lifetime = 300;" providerName="System.Data.EntityClient" />  </connectionStrings>

    Provider utilizado : 

    dotConnect for PostgreSQL 7.4 Express

    Mas não e sempre que o erro acontece , o mais engraçado e que na segunda tentativa os dados são carregados normalmente , o erro só ocorre na primeira tentativa de carregar as informações , o que achei muito estranho .

    Ao realizar a análise do erro eu tenho a seguinte dúvida :

    Devo lançar a exceção para notificar ao usuário para tentar realizar a conexão novamente ? não sei ate que ponto devo considerar este erro normal.


    • Editado Matheus MSDN terça-feira, 22 de março de 2016 14:11 .
    terça-feira, 22 de março de 2016 14:10

Respostas

  • Veja bem,

    Eu não conheço o seu ambiente, pode não ser a melhor prática, mas para nós do fórum é difícil avaliar tudo que já fora feito, logo, se essa solução te atende, é válida.


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Matheus MSDN terça-feira, 22 de março de 2016 16:07
    terça-feira, 22 de março de 2016 14:52

Todas as Respostas

  • Bom dia Matheus,

    Há diversos pontos para se analisar, pode até ser um problema de tráfico.

    Se isso acontece só na primeira vez, então crie um Try-catch para forçar uma segunda conexão e o usuário não ser impactado, no primeiro Try você tenta a conexão, no seu catch, você cria outro try-catch realizando outra tentativa, caso não de certo, ai sim você retorna para o usuário.


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    terça-feira, 22 de março de 2016 14:36
  • hum pior que e mesmo não havia pensando nisso  , você podeira complementar sua resposta  fornecendo um exemplo dessa estrutura ? 

    • Editado Matheus MSDN terça-feira, 22 de março de 2016 14:38
    terça-feira, 22 de março de 2016 14:37
  • Certo, segue uma exemplificação!

    Try{
    
       Realize a conexão.
    
    }catch(exception e){
    
       try{
    
           Realize a conexão novamente.
    
          }catch(Exception e2){
    
            Devolve para o usuário
    
           }
    
     }


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Sugerido como Resposta Antero Marques terça-feira, 22 de março de 2016 15:32
    terça-feira, 22 de março de 2016 14:40
  • Entendi mas isso seria uma boa pratica ou só o jeito mais fácil de resolver este problema ? eu tentei mas não deu certo ,  vou seguir a sua ideia de tentar estabelecer a conexão mais de uma vez parece ser o caminho mais indicado para a situação 

    • Editado Matheus MSDN terça-feira, 22 de março de 2016 14:50
    terça-feira, 22 de março de 2016 14:47
  • Veja bem,

    Eu não conheço o seu ambiente, pode não ser a melhor prática, mas para nós do fórum é difícil avaliar tudo que já fora feito, logo, se essa solução te atende, é válida.


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Matheus MSDN terça-feira, 22 de março de 2016 16:07
    terça-feira, 22 de março de 2016 14:52