2011-01-10 4 views
7

Jersey 1.4, ApacheHttpClient 및 Apache MultiThreadedHttpConnectionManager 클래스를 사용하여 연결을 관리하고 있습니다. HttpConnectionManager의 경우 staleCheckingEnabled를 true로 설정하고 maxConnectionsPerHost를 1000으로 설정하고 maxTotalConnections를 1000으로 설정합니다. 다른 모든 설정은 기본값입니다. Tomcat에서 실행 중이며 Jersey 클라이언트를 사용하여 여러 외부 호스트에 연결합니다.Jersey 클라이언트의 CLOSE_WAIT 소켓

짧은 시간 후에 Tomcat 프로세스와 관련된 CLOSE_WAIT 상태의 소켓을 보게됩니다. tcpdump를 사용한 일부 모니터링은 외부 호스트가 잠시 후 연결을 닫는 것처럼 보이지만 우리 쪽에서는 닫히지 않습니다. 보통 소켓 읽기 대기열에는 24 바이트의 데이터가 있습니다. 연결은 https를 사용하고 있으며 데이터가 암호화되어있는 것처럼 보입니다. 그래서 무엇인지 모르겠습니다.

생성 된 ClientRequest 객체가 닫혀 있는지 확인했습니다. CLOSE_WAIT의 소켓은 재활용 될 것으로 보이며 적어도 현재로서는 리소스가 부족합니다. 외부 서버에서 어떤 일이 일어나고 있는지 잘 모르겠습니다.

제 질문은 정상입니까? 걱정해야합니까?

감사합니다,

+0

몇 가지 코드를 볼 수 있습니까? 방금이 소식을 들었고 MultiThreadedHttpConnectionManager를 저지로 구성하는 방법을보고 싶습니다. – markthegrea

+0

죄송합니다. 코드를 게시 할 수 없습니다. –

답변

1

이는 방화벽이나 원격 서버 타임 아웃 TCP 세션 같은 장치가 될 것으로 보인다. 당신은 실제로 당신이 네트워크 리소스를 사용하지 않도록 연결을 사용 갈 때

http://wiki.wireshark.org/SSL

staleCheckingEnabled 플래그는 수표를 발행 (TCP : 자신의 SSL 페이지에 설명 된대로 와이어 샤크를 사용하여 HTTPS의 패킷 캡처를 분석 할 수 있습니다 세션)을 사용할 수 있습니다.