2009-09-16 10 views
28

Mam stronę na mojej stronie internetowej, która zgłasza stan witryny i ustawia kod statusu HTTP 200, wszystko jest w porządku. Ta strona jest używana przez zewnętrzny program monitorujący w celu sprawdzenia, czy witryna działa.Kod stanu HTTP dla bazy danych jest wyłączony

Kiedy trafi się ta strona, wykonuję bardzo lekkie wywołanie proc DB, aby sprawdzić, czy DB jest poprawny i czy nie. Jeśli to się nie powiedzie, chcę zwrócić znaczący kod błędu HTTP do monitora, aby poinformować go, że wszystko jest w porządku.

Z tego, co mogę wymyślić, nie ma statusu HTTP, który mówi, że "komponent strony trzeciej, na którym polegam, jest wyłączony", więc co byś zwrócił w tym przypadku?

503 Usługa niedostępna ...?

Odpowiedz

22

Podejrzewam, że odpowiednie byłoby 500 lub 503. 503 jest zwykle używany w warunkach przeciążenia lub konserwacji, ale nie sądzę, że byłoby nieuzasadnione używanie go w twojej sytuacji.

+0

Będę musiał się zgodzić, że kod 500 będzie najbardziej przydatny. wystąpił błąd po stronie serwera - Twój db nie działa. dzięki temu nadal możesz zwrócić dowolny znacznik, który chcesz. – geowa4

-1

Wygląda na to, że monitorowanie powinno się opierać nie tylko na zwracaniu statusu. Próbujesz przekazać bardziej wyszukane informacje, niż kody statusu HTTP zostały zaprojektowane do komunikacji.

Albo, po prostu wybierz kod, nawet wymyśl jeden i skonfiguruj monitorowanie tak, aby traktować je jako "db w dół".

+7

Wydaje mi się, że chce przekazać klientowi sensowną wiadomość, gdy baza danych nie działa. W takim przypadku tworzenie kodu nie jest dobrym pomysłem - w jaki sposób klienci powinni go interpretować? Powinieneś wybrać odpowiedni kod statusu. –

25

To jest dokładnie to, co 503.

503 oznacza, że ​​serwer polegał na połączeniu innej usługi, która nie odpowiedziała na czas.

Server Error 5xx

Sprawdzone się Wikipedia i aukcja nie wydaje się sugerować, że 504 będzie jeden mam na myśli. Całkiem możliwe, że link jest przestarzały.

Więc:

504 Brama Timeout

Serwer działający jako brama lub pełnomocnika i nie otrzymują terminowe żądanie od serwera podrzędnego.

+0

Wybieram 503, ponieważ wskazuje, że jest to problem tymczasowy i klient nie może spróbować ponownie po określonym czasie, który można określić w nagłówku. –