2009-09-16 16 views
28

Tengo una página en mi sitio web que informa sobre el estado del sitio y establece un código de estado HTTP 200 si todo está bien. Esta página es utilizada por un programa de monitoreo externo para verificar que el sitio esté activo.Código de estado HTTP para la base de datos ha caído

Cuando se golpea esta página, realizo una llamada de proceso de DB muy liviana para ver si la base de datos está activada y está bien. Si esto falla, quiero devolver un código de error HTTP significativo al monitor para avisarle que todo no está bien.

Según lo que puedo averiguar, no existe un estado HTTP que diga "un componente de terceros en el que confío está inactivo", entonces, ¿qué devolvería en este caso?

503 ¿Servicio no disponible ...?

Respuesta

22

Sospecho que un 500 o 503 sería apropiado. 503 se usa generalmente para condiciones de sobrecarga o mantenimiento, pero no creo que no sea irrazonable usarlo para su situación.

+0

tendré que aceptar que un código 500 sería más útil. Hubo un error en el servidor: tu db no funciona. con eso, aún puede devolver cualquier marcado que desee. – geowa4

-1

Parece que debe basar su supervisión en algo más que el retorno de estado. Está tratando de pasar información más sofisticada que los códigos de estado HTTP diseñados para comunicarse.

O, simplemente elija un código, incluso invente uno, y configure su monitoreo para tratarlo como "db down".

+7

Para mí, parece que quiere transmitir un mensaje significativo a los clientes cuando la base de datos no funciona. En ese caso, hacer un código no es una buena idea: ¿cómo se supone que los clientes lo interpretan? Debe elegir el código de estado correcto. –

25

Eso es exactamente lo que es un 503.

503 significa que el servidor se basó en conectar algún otro servicio, que no respondió a tiempo.

Server Error 5xx

comprobado en Wikipedia y la lista parece dar a entender que un 504 sería el que yo estoy pensando. Es muy posible que el enlace esté desactualizado.

Así:

504 Pasarela interrumpida

El servidor estaba actuando como una puerta de enlace o proxy y no recibió una oportuna solicitud del servidor indirecto.

+0

Opto por 503 porque indica que se trata de un problema temporal y el cliente no puede volver a intentarlo después de un tiempo en particular que puede especificarse en el encabezado. –

Cuestiones relacionadas