2012-10-22 3 views
0

은 내가 다음은 마지막으로 ... 시도하고 모든 것들을 후 httpPost.reset 전화가 HTTP 클라이언트 4.2.1HttpClient가있는 열린 소켓이 너무 많습니까?

PoolingClientConnectionManager mgr = new PoolingClientConnectionManager(); 
    mgr.setMaxTotal(20); 
    HttpClient httpclient = new DefaultHttpClient(mgr); 

의 클라이언트에 다음과 같은 코드가 있습니다.

어떤 이유로 든 프로그램이 내 서버에 110 개의 ESTABLISHED HTTP 연결을 사용하고 CLOSE_WAIT (TIMED_WAIT 아님)에 235 개의 연결을 사용하는 것으로 나타납니다.

내가 뭘 잘못하고 있니? 이것 주위에 버그가 있습니까? 최대 연결 수는 20이어야합니다. 그렇지 않습니까?

덕분에, 딘

답변

0

좋아, 사람이 코드에서 꽤 많은 DefaultHttpClient 년대를 작성하고 있었고, 난 그걸 놓쳤다 .... 신경 쓰지 않았다. 그것은 지금은 같은 호스트 (동일한 호스트에 대한 다른 URL)에 대한 새로운 소켓을 반복해서 생성하는 것을 제외하고는 매우 느린 처리량의 성능 악몽을 낳습니다. (.... grrrrrr.

관련 문제