Wie kann man die Verbindung des Webservers zur Datenbank am besten überprüfen?

Wie kann man die Verbindung des Webservers zur Datenbank am besten überprüfen?

Unser IT-Administrator fordert einen API-Endpunkt in unserer Webanwendung an, der als Integritätsprüfung verwendet werden kann. Die Logik in der API sollte jede einfache Datenbankabfrage ausführen, um sicherzustellen, dass der Webserver eine Verbindung zur Datenbank herstellen kann. Die Idee ist, dass ein Fehler dieses API-Aufrufs eine automatische Außerbetriebnahme des Webservers usw. auslösen kann.

Das wird definitiv funktionieren, wirkt aber ein bisschen selbstgemacht. Gibt es eine bessere Möglichkeit, dies mithilfe von vorgefertigten Tools usw. zu erreichen? Wir verwenden den Microsoft-Stack, daher sind die Web-Boxen IIS 8 und die Datenbank SQL 2014.

Antwort1

Sie könnten tun, was Sie vorschlagen, müssen den API-Aufruf jedoch in regelmäßigen Abständen von „irgendwo“ aus durchführen. In der Zeit zwischen dem Ausfall der Datenbank und der Erkennung durch den nächsten Ping kommt es immer noch zu unerwünschtem Verhalten.

Eine andere Lösung besteht darin, den Fehler in einem globalen Handler abzufangen. (In ASP.NET können Sie dies in der Datei Global.asax tun.) Sie können den Fehler untersuchen und bei Bedarf ziemlich detailliert vorgehen, z. B. eine Aktion ausführen, wenn die Verbindung zur Datenbank abgelaufen ist, oder eine andere Aktion, wenn die Verbindung gültig ist, aber ein Berechtigungsfehler vorliegt. Beachten Sie, dass ein DB-Verbindungsfehler nur dann zum globalen Handler gelangt, wenn er nicht zuerst durch etwas anderes behandelt wird.

Vorschlag: Versuchen Sie, den Teil „Was tun Sie dagegen?“ als separaten Mechanismus von der Erkennungsmethode zu erstellen. Auf diese Weise könnten Sie sogar beide Ideen oder eine dritte umsetzen und dieselben resultierenden Aktionen nutzen.

verwandte Informationen