是什么引发了HTTP 503以及如何更改超时?

时间:2009-04-01 01:27:37

标签: ajax http timeout weblogic http-status-code-503

我继承了一个应用程序(我的公司内部),该应用程序使用在Internet Explorer中运行的javascript,该应用程序使Ajax调用在WebLogic Server v10中运行的基于Struts的应用程序。

系统中某些服务器端操作的时间超过3分钟。用户始终注意到Ajax调用在3分钟标记处返回503错误。我的用户可以等待超过3分钟,但503错误会中断他们的工作。

此应用程序需要进行性能调整,但我们非常需要一个临时的解决方法来延长返回503错误之前可以发生的时间。

目前的理论是IE XMLHttpRequest对象引发了503错误。一组假想的WebLogic专家倾注了我们的代码和WebLogic日志,并声明服务器端没有发生超时。但我有疑虑。

我的问题是,哪个软件负责引发503错误:浏览器,Ajax javascript或服务器?这个超时期限可以改变吗?

4 个答案:

答案 0 :(得分:4)

503错误对于许多不同类型的错误来说都是一种全面的错误,通常是在服务器端。在您的情况下,服务器可能只是在某个超时后拒绝连接,并用503响应以指示服务器过载或无法处理您的请求。

很多时候,对于Web服务,当服务器代码抛出异常或错误时,将返回503。如果服务器代码没有正确处理错误,它将冒泡到服务器,服务器只会响应通用503.

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

Error code 5xx (alternate definition)

RFC 2616

答案 1 :(得分:3)

503是服务器错误。 XMLHttpRequest将愉快地等待超过3分钟。你应该做的第一件事就是通过访问telnet或netcat中的问题URL或者类似的东西来满足自己的需求,并从图片中看到带有javascript的503。

然后您可以继续在服务器端找到超时。

答案 2 :(得分:2)

您的网络服务器有一个请求回复超时,正在被长时间运行的服务请求触发。它可以是WebLogic服务器或代理。肯定不是客户。

您是否考虑过提交将立即响应的异步HTTP请求,然后轮询其他位置以获取最终结果?三分钟大约170秒。

答案 3 :(得分:2)

503很可能是由于服务器超时造成的。如果您可以调整Apache服务器,请阅读可以在httpd.conf中设置的Timeout属性。 查看httpd / logs / error_log以查看是否发生超时。 另请参阅此答案:Mod cluster proxy timeout in apache error logs