Ir ao conteúdo

Posts recomendados

Postado

Beleza pessoal,

 

Estou com um problema aqui a algum tempo e nada que achei me ajudou até o momento. Estou trabalhando com .NET e MongoDB utilizando a biblioteca do MongoDB.Driver.

Não sei se preciso gerenciar a conexão do app com o server quando perco a mesma, pois a biblioteca não oferece nenhum evento relacionado para que eu possa lidar com falhas e/ou perda de conexão.

Devo fazer uma nova conexão por requisição que for fazer no banco (como vi em vários tutoriais)? Devo manter uma conexão única e gerenciada mas como? Existe um outra possibilidade que não exerguei?

 

Estou meio no escuro quanto a isso, agradeço desde já.

  • Obrigado 1
Postado

@f-uba

 

Opa f-uba, como vai?

 

Eu nem programo em C#, não utilizo o .NET, mas já vi uma galera trabalhando. O clássico para tratamento de erros, em toda linguagem de programação, é utilizar Try and Catch, ou seja, Catch vai trabalhar com a exceções = error.

 

Citação

pois a biblioteca não oferece nenhum evento relacionado para que eu possa lidar com falhas e/ou perda de conexão.

 

O MongoDB deve tentar se conectar na Database e aguarda de 30 à 60 segundos segundos, se não estiver respondendo da um exceção(catch) de Timeout Exception, aí da para escrever na tela que deu erro.

 

Não sei se escrevi certo mais TimeSpan com o 10 no final eu reduzo para 10 segundos, isso fica ao seu gosto, ou seja, se não responder em 10 segundos, joga para TimeoutException. Lembrando que no Try você faz a conexão com a database normal e colocar os segundos do catch.

 

Da uma olhada em MongoClientSettings também, enfim.

 

Só quero tentar da uma clareada.

 

try {

	var settings = new MongoClientSettings {
		ServerSelectionTimeout = new TimeSpan(0,0,10),
		Server = new MongoServerAddress("127.0.0.1", 27017)
          
        //Aqui você provavelmente vai seguir com a conexão e consultas, ai é com voce
	};

} catch (TimeoutException){

  //Aqui voce pode colocar uma mensagem de erro de timeout

}

 

Ficar verificando se a conexão caiu ou está em Up é fácil, enfim.

 

Desta maneira eu achei na internet.

 

catch (Exception e)
17 {
18    if(e.InnerException != null && e.InnerException is TimeoutException)
19         Console.WriteLine($"Ixi, deu erro");
20 }

 

Espero ter ajudado, se não desconsidere.

 

Se eu estiver ajudado, me avisa, que nós trabalhamos em cima das falhas de database.

 

Valeu.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!