WebSphere разрывает соединение, в то время как сервлет продолжает работать

WebSphere разрывает соединение, в то время как сервлет продолжает работать

У нас есть приложение, работающее на WebSphere. Запросы часто выполняются долго (десятки минут). Наши пользователи сообщают, что Internet Explorer разрывает соединение и показывает пустой экран после некоторого времени ожидания. Журнал приложения говорит, что запросы завершаются нормально на уровне сервлета, хотя и выдает ряд ошибок, подобных этой:

[4/24/15 11:31:19:253 MSK] 0000001f ThreadMonitor W WSVR0605W: Поток "WebContainer : 2" (00000027) был активен в течение 750529 миллисекунд и может быть завис. Всего на сервере есть 1 поток(и), которые могут быть зависшими

Какие параметры конфигурации WebSphere или Internet Explorer следует учитывать при решении проблемы?

решение1

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

Если вы не отвечаете за дизайн приложения, вы можете сделать две (действительно грязные) вещи:

  • Измените оповещение для зависшего потока (это грязно, так как может повлиять на каждый поток в вашем контейнере, и вы можете пропустить нужное вам оповещение).Здесьэто способ сделать это.
  • Увеличьте время ожидания соединения в пользовательских свойствах вашего веб-контейнера (это грязно, потому что это повлияет на вашу производительность и некоторые другие настройки, поскольку вам, возможно, придется увеличить пул потоков, а затем и память и т. д.).

Но вам определенно следует исправить то, что не так с вашим бэкендом И/ИЛИ вашей реализацией (или сделать дамп ядра для вашего разработчика).

Связанный контент