Я использую Jersey 1.4, ApacheHttpClient
и класс Apache MultiThreadedHttpConnectionManager
для управления соединениями. Для HttpConnectionManager
я установил staleCheckingEnabled в true, maxConnectionsPerHost в 1000 и maxTotalConnections в 1000. Все остальное по умолчанию. Мы работаем в Tomcat и подключаемся к нескольким внешним хостам с помощью клиента Jersey.
Я заметил, что через некоторое время я начну видеть сокеты в состоянии CLOSE_WAIT, связанные с процессом Tomcat. Некоторый мониторинг с помощью tcpdump показывает, что внешние хосты через некоторое время закрывают соединение, но с нашей стороны оно не закрывается. Обычно в очереди чтения сокетов есть некоторые данные, часто 24 байта. Соединения используют https, и данные, кажется, зашифрованы, поэтому я не уверен, что это такое.
Я проверил, чтобы убедиться, что созданные объекты ClientRequest закрыты. Сокеты в CLOSE_WAIT, похоже, перерабатываются, и у нас не осталось никаких ресурсов, по крайней мере, в настоящее время. Я не уверен, что происходит на внешних серверах.
У меня вопрос: нормально ли это, и стоит ли мне беспокоиться?
Спасибо
John