2012-10-23 2 views
2

netstat -anp | grep 나는 두 번 다른 시간에 HttpClient가 내 연결을 다시 사용하지 않는 것을 볼 수 있습니다. 나는 왜 HttpClient를 그냥 다시 사용하지 않는 모든 시간 myhost.com 동일한 연결을하다 같은 호스트에 같은HttpClient가 내 연결을 다시 사용하지 않고 새로운 연결을 계속 생성합니다.

같은 다른 URL을 때마다 연결?

나는이 나는 그들이 사용하는 볼 HttpClient를 ...

PoolingClientConnectionManager mgr = new PoolingClientConnectionManager(); 
mgr.setDefaultMaxPerRoute(30); 
mgr.setMaxTotal(30); 

에 전달 풀의 초기화 데이터에 대한 다음 코드 HttpRoute 및 HttpRoute가 동일해야 같은 이상한 것 같음에 보이나 인근이 그냥 호스트 이름과 스키마 (https/http)에서 그리고 그게 맞습니까? 그것은 그것과 관련이 있습니까? 이거 버그 야? 성능은 매번 https 소켓을 다시 구축해야하는 것을 매우 진절머리 나게합니다 !!!!!

답변

6

귀하의 응용 프로그램에 의해 설정된 SSL 연결이 안정적이라고 의심됩니다. 즉, 서버는 클라이언트에 개인 인증서로 인증하도록 요청하여 보안 컨텍스트에 고유하게 만듭니다. HttpClient는이를 감지하고 이러한 연결이 다른 보안 컨텍스트를 사용하는 호출자에게 임대되지 않도록합니다. 효과적으로 HttpClient는 잘못된 사용자에게 지속적으로 SSL 연결을 임대하지 않고 각 요청에 대해 새로운 연결을 강제 실행하여 안전합니다.

당신은 여기에 두 가지 일을 할 수

  • 이 있는지 논리적으로 관련이있는 모든 요청 (권장) 같은 맥락 자세한 내용은

HttpClient tutorial의이 섹션을 참조를 공유하게 추적하지 않도록 연결 상태

+0

나는 틀린 것을 문맥으로 다루었 다. 감사합니다! !!! –

관련 문제