Закрытие длительных Java http-запросов сервлетов - PullRequest
0 голосов
/ 09 января 2020

У меня есть группа сервлетов, размещенных на сервере Tomcat, которые используются веб-сайтом моей компании через VPN через нашу корпоративную сеть. При нормальных обстоятельствах все сервлеты вернутся за считанные секунды, самый длительный - 4-5 секунд. Это не проблема. Недавно возникла проблема, связанная с сетевыми проблемами, которые не позволяют сервлетам отправлять ответ обратно на запрашивающий IP. У меня есть запись для отслеживания времени, и мой код, кажется, обнимает следующий вызов:

objectMapper.writeValue (response.getOutputStream (), output);

выполнение до этой строки занимает всего 1 секунду, но в случае ошибки эта строка не выполняется более 20 минут. Мы склонны думать, что это брандмауэр блокирует ответ, но не уверены.

В любом случае, есть ли способ ограничить время выполнения DoGet / DoPost, чтобы я не получал запрос на зависание ожидания.

Со стороны сети TCP-соединения с tomcat застряли в состоянии close_wait (и / или time_wait).

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