Qual a melhor forma de verificar a conectividade do servidor web com o banco de dados?

Qual a melhor forma de verificar a conectividade do servidor web com o banco de dados?

Nosso administrador de TI está solicitando um endpoint de API em nosso aplicativo da web para usar como verificação de integridade. A lógica na API deve realizar qualquer consulta simples ao banco de dados para garantir que o servidor web possa se conectar ao banco de dados. A ideia é que uma falha nesta chamada de API possa desencadear o descomissionamento automático do servidor web, etc.

Definitivamente vai funcionar, mas parece um pouco caseiro. Existe uma maneira melhor de usar ferramentas prontas para uso, etc., para conseguir isso? Estamos na pilha da Microsoft, então as caixas da web são IIS 8 e o banco de dados é SQL 2014.

Responder1

Você poderia fazer o que propõe, mas precisará fazer a chamada da API em intervalos regulares de "algum lugar". Você ainda terá um comportamento indesejado durante o período entre o momento em que o banco de dados fica inativo e o próximo ping o detecta.

Outra solução é capturar o erro em um manipulador global. (No ASP.NET, você pode fazer isso no arquivo Global.asax.) Você pode inspecionar o erro e obter bastante granularidade, se desejar, como executar uma ação se a conexão com o banco de dados tiver expirado ou outra ação se a conexão for válida, mas houver um erro de permissão. Observe que um erro de conexão com o banco de dados só chegará ao manipulador global se alguma outra coisa não o tratar primeiro.

Sugestão: tente fazer da parte "o que você faz a respeito" um mecanismo separado do método de detecção. Dessa forma, você poderia até implementar ambas as ideias, ou uma terceira, e compartilhar as mesmas ações resultantes.

informação relacionada