Ir ao conteúdo
  • Cadastre-se

Outro MongoDB Driver com .NET - Gerenciar conexão ao servidor


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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!