Как лучше всего проверить подключение веб-сервера к базе данных?

Как лучше всего проверить подключение веб-сервера к базе данных?

Наш ИТ-администратор запрашивает конечную точку API в нашем веб-приложении для использования в качестве проверки работоспособности. Логика API должна выполнять любой простой запрос к базе данных, чтобы гарантировать, что веб-сервер может подключиться к базе данных. Идея заключается в том, что сбой этого вызова API может вызвать автоматическое отключение веб-сервера и т. д.

Это определенно будет работать, но выглядит немного самодельным. Есть ли лучший способ, используя готовые инструменты и т. д., чтобы добиться этого? Мы работаем на стеке Microsoft, поэтому веб-боксы — IIS 8, а база данных — SQL 2014.

решение1

Вы можете сделать так, как предлагаете, однако вам нужно будет делать вызов API с регулярными интервалами из "где-то". У вас все равно будет нежелательное поведение в течение времени между тем, когда DB падает, и следующим пингом это обнаруживается.

Другое решение — перехватить ошибку в глобальном обработчике. (В ASP.NET это можно сделать в файле Global.asax.) Вы можете изучить ошибку и получить довольно детализированную информацию, если хотите, например, выполнить одно действие, если соединение с БД истекло, или другое действие, если соединение допустимо, но есть ошибка прав доступа. Обратите внимание, что ошибка соединения с БД попадет в глобальный обработчик только в том случае, если что-то еще не обработает ее первым.

Предложение: попробуйте сделать часть "что вы с этим делаете" отдельным механизмом от метода обнаружения. Таким образом, вы даже сможете реализовать обе идеи или третью и разделить те же самые результирующие действия.

Связанный контент