Проблемы, вызванные клиентом веб-службы Java Axis2 после истечения времени ожидания - PullRequest
0 голосов
/ 15 июля 2011

У меня следующая проблема:
- Java-веб-приложение, которое генерирует Voice XML - на основе структур - развернутое в IBM WebSphere AS (WAS v.7.0.0.7).
- Приложение использует Axis2 java - v.1.5 - клиент веб-службы для вызова веб-службы, находящейся в WebLogic AS.
- Я установил тайм-аут на 1000 мс, используя:

stub.getServiceClient().getOptions().setTimeOutInMilliSeconds(1000);


- Максимальное количество обращений приложения к веб-службе составляет около 25 000 в час - около 7 одновременных вызовов.
- После помещения кода, вызывающего веб-службу, в блок try-catch, я ловлю исключение и возвращаюсь из метода.
- В среднем выдается около 200 исключений - в WAS - в час из-за истечения таймера либо при открытии соединения, либо при чтении результата вызова веб-службы - По логу

exception.getMessage();

Я получаю одно из следующих, в основном первое:

org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 60000 ms

или

  org.apache.axis2.AxisFault: Read timed out


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


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


Я прошу прощения за длинное описание / вопрос, я всегда ценю вашу помощь!

1 Ответ

0 голосов
/ 18 октября 2011

Исходя из того, что я понимаю, ошибка сервера поступает с сервера как 60000 мс. По совпадению, эти 60 секунд являются тайм-аутом по умолчанию для сервера IBM IHS, поэтому ваша проблема вполне может быть с этим.

Если вы хотите, чтобы ваши запросы обрабатывались на сервере более 60 секунд, вы можете увеличить это время, отредактировав /opt/WebSphere70/Plugin/config/SERVERNAME/plugin-cfg.xml

.

Найдите ServerIOTimeout = "60" и измените значение более чем на 60 секунд.

[править]

Вы также можете просмотреть этот параметр через консоль администратора ...

Серверы> Веб-серверы> ИМЯ СЕРВЕРА> Свойства плагина

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...