2009-04-01 16 views
12

He heredado una aplicación (interna de mi empresa) que utiliza javascript ejecutándose en Internet Explorer que hace que las llamadas Ajax a una aplicación basada en Struts se ejecute en WebLogic Server v10.¿Qué provoca HTTP 503 y cómo cambiar el tiempo de espera?

Ciertas operaciones del lado del servidor en el sistema tardan más de 3 minutos. Los usuarios notaron constantemente que la llamada Ajax devuelve el error 503 en la marca de los 3 minutos. Mis usuarios pueden esperar más de 3 minutos, pero los errores 503 interrumpen su trabajo.

Esta aplicación necesita ser ajustada al rendimiento, pero necesitamos urgentemente una solución temporal para extender cuánto tiempo puede ocurrir antes de que se devuelva un error 503.

La teoría actual es que el error IE 503 está siendo provocado por el objeto IE XMLHttpRequest. Un equipo de supuestos expertos de WebLogic derramó nuestro código y registros de WebLogic, y declaró que no hay tiempo de espera en el servidor. Pero tengo mis dudas.

Mi pregunta es, ¿qué pieza de software es responsable de generar el error 503: el navegador, el Javascript de Ajax o el servidor? ¿Y se puede cambiar este tiempo de espera?

+0

Siguiendo con esta vieja pregunta ... en mi caso, esto fue causado por un código del servidor mal ajustado que tardó demasiado en responder. Obtener la respuesta por debajo de 30 segundos (al menos) ha hecho que este síntoma desaparezca. Todavía no estoy seguro de qué software estaba subiendo el 503 y/o cómo cambiar el tiempo de espera, así que supongo que dejaré esta pregunta abierta. –

+0

¡La redacción de esta pregunta era perfecta! Muy tardo gracias por una gran pregunta. Estas son el tipo de preguntas que SO necesita – thedouglenz

Respuesta

2

Su servidor web tiene un tiempo de espera de respuesta de solicitud que se está produciendo por solicitudes de servicio de larga ejecución. Podría ser el servidor de WebLogic o un proxy. Ciertamente no es el cliente.

¿Ha considerado enviar una solicitud HTTP asíncrona a la que se responderá de inmediato y luego sondear otra ubicación para los resultados finales? Tres minutos son aproximadamente 170 segundos demasiado largos.

4

Un error 503 es una especie de catch-all para muchos tipos diferentes de errores, generalmente en el lado del servidor. En su caso, es posible que el servidor simplemente rechace la conexión después de un tiempo de espera determinado y que responda con un 503 para indicar que el servidor está sobrecargado o no puede procesar su solicitud.

Muchas veces con los servicios web, se devolverá un 503 cuando el código del servidor arroje una excepción o error. Si el código del servidor no controla correctamente el error, que formarán burbujas en el servidor, lo que acaba de responder de nuevo con un genérico 503.

http://www.checkupdown.com/status/E503.html

Error code 5xx (alternate definition)

RFC 2616

3

503 es un error del servidor XMLHttpRequest esperará felizmente más de 3 minutos. Lo primero que debe hacer es satisfacerse visitando la URL del problema en telnet o netcat o similar y viendo el 503 con javascript fuera de la imagen.

Luego puede continuar para encontrar el tiempo de espera en el lado del servidor.

1

503 es más probable debido a un tiempo de espera en el servidor. Si puede sintonizar su servidor Apache, lea sobre el atributo Timeout que puede establecer en httpd.conf. Busque en httpd/logs/error_log para ver si se están produciendo tiempos de espera. Consulte también esta respuesta: Mod cluster proxy timeout in apache error logs.

Cuestiones relacionadas