Назад | Перейти на главную страницу

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

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

[24.04.15 11: 31: 19: 253 MSK] 0000001f ThreadMonitor W WSVR0605W: Тема «WebContainer: 2» (00000027) была активна 750529 миллисекунд и может зависнуть. Всего на сервере есть / есть 1 поток (-а), который может зависнуть

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

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

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

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

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