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

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

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

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

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

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


person Christopher Graziano    schedule 01.04.2009    source источник
comment
Продолжая этот старый вопрос... в моем случае это было вызвано плохо настроенным серверным кодом, который слишком долго отвечал. Получение ответа менее чем за 30 секунд (по крайней мере) заставило этот симптом исчезнуть. Все еще не уверен, какое программное обеспечение поднимало 503 и / или как изменить тайм-аут, поэтому, думаю, я оставлю этот вопрос открытым.   -  person Christopher Graziano    schedule 15.12.2009
comment
Формулировка этого вопроса была идеальной! Очень запоздалое спасибо за отличный вопрос. Это те вопросы, которые нужны SO   -  person thedouglenz    schedule 17.02.2015


Ответы (4)


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

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

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

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

RFC 2616

person Andy White    schedule 01.04.2009

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

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

person dwc    schedule 01.04.2009

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

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

person Steven Huwig    schedule 01.04.2009

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

person hrabinowitz    schedule 16.07.2015