Подтвердить что ты не робот

Что повышает HTTP 503 и как изменить таймаут?

Я унаследовал приложение (внутреннее для моей компании), которое использует javascript, запущенную в Internet Explorer, что делает обращения Ajax к приложению Struts, запущенному в WebLogic Server v10.

Некоторые серверные операции в системе занимают более 3 минут. Пользователи последовательно заметили, что вызов Ajax возвращает ошибку 503 с отметкой 3 минуты. Мои пользователи могут ждать более 3 минут, но 503 ошибки прерывают их работу.

Это приложение должно быть настроено на производительность, но нам крайне необходимо временное обходное решение для увеличения времени, которое может произойти до того, как будет возвращена ошибка 503.

Текущая теория состоит в том, что ошибка 503 возникает объектом IE XMLHttpRequest. Команда предполагаемых экспертов WebLogic вылила наши журналы кода и WebLogic и объявила, что на стороне сервера нет тайм-аута. Но у меня есть сомнения.

Мой вопрос в том, какая часть программного обеспечения отвечает за повышение ошибки 503: браузер, Ajax javascript или сервер? И можно ли изменить этот период ожидания?

4b9b3361

Ответ 1

Ошибка 503 является своего рода уловкой для множества разных типов ошибок, обычно на стороне сервера. В вашем случае может случиться так, что сервер просто отклоняет соединение после определенного тайм-аута и отвечает на ответ 503, чтобы указать, что сервер перегружен или не может обработать ваш запрос.

Много раз с веб-службами возвращается 503, когда код сервера генерирует исключение или ошибку. Если код сервера неправильно обрабатывает эту ошибку, он будет пузыриться до сервера, который просто ответит на него общим 503.

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

Код ошибки 5xx (альтернативное определение)

RFC 2616

Ответ 2

503 - ошибка сервера. XMLHttpRequest с радостью будет ждать более 3 минут. Первое, что вам нужно сделать, это убедиться в этом, посетив URL-адрес проблемы в telnet или netcat или аналогичный, и увидев 503 с javascript вне изображения.

Затем вы можете найти тайм-аут на стороне сервера.

Ответ 3

У вашего веб-сервера есть тайм-аут ответа на запрос, который отключается от длительных запросов на обслуживание. Это может быть сервер WebLogic или прокси. Это, конечно, не клиент.

Рассматривали ли вы отправку асинхронного HTTP-запроса, на который будут немедленно отвечать, а затем опрос другого места для возможных результатов? Три минуты длится около 170 секунд.

Ответ 4

503, скорее всего, связано с таймаутом на сервере. Если вы можете настроить сервер Apache, прочитайте об атрибуте Timeout, который вы можете установить в httpd.conf. Просмотрите httpd/logs/error_log, чтобы узнать, происходят ли тайм-ауты. См. Также этот ответ: Тайм-аут прокси-сервера кластера в журналах ошибок apache.