Miscellaneous

[org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Closing connections idle longer than 30 SECONDS

1103동103호·2018년 1월 3일·조회 5,672

1. 개요

Apache HttpClient 사용 중 출력되는 커넥션 관리 관련 로그 메시지에 대한 내용이다.

2. 설명

2-1. 로그

14:33:41.108 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Closing expired connections
14:33:41.108 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Closing connections idle longer than 30 SECONDS
14:33:46.108 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Closing expired connections

위 로그는 PoolingHttpClientConnectionManager가 만료된 커넥션이나 일정 시간 이상 유휴 상태인 커넥션을 정리할 때 출력되는 DEBUG 로그다. 오류라기보다는 커넥션 풀을 관리하는 과정에서 발생하는 정상적인 메시지에 가깝다.

특히 Closing expired connections는 만료된 커넥션을 닫는다는 의미이고, Closing connections idle longer than 30 SECONDS는 30초보다 오래 사용되지 않은 커넥션을 닫는다는 의미다.

2-2. 해결책

  • 그냥 무시하고 자동으로 닫히도록 둔다. 동작에 문제가 없고 로그만 거슬린다면 해당 패키지의 로그 레벨을 조정한다.
  • 사용이 끝난 CloseableHttpClient, 응답 객체, 커넥션 매니저 등을 명시적으로 닫는다.

확인할 때는 먼저 이 로그가 DEBUG 레벨에서만 출력되는지 확인한다. 애플리케이션 동작에 장애가 없고 커넥션 누수나 요청 실패가 없다면 일반적으로 조치가 필요하지 않다. 반대로 요청 처리 후 응답을 닫지 않거나 클라이언트를 계속 생성하는 구조라면 리소스 정리 로직을 점검하는 것이 좋다.

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.