개인 프로젝트를 하다가 No buffer left to unconsume 이라는 에러가 뜨기 시작했다.
구글링해보니 DB 접근 후 자원반납을 제대로 하지 않아 메모리가 누수된 거라는데...
그러고 보니 학원에서 무지성으로 try catch ~ .close(); 닫아줬는데 이번에는 사용하지 않았다.
에러 뜬 김에 확실히 알고 넘어가자 싶어 정리해 본다.
=====> JSOUP 최신 버전으로 업데이트 하니 해결되었다.
로그인 - 메인 페이지 접근 스무 번쯤 반복하면 저 에러가 뜬다.
우선 나는 hikariCP를 사용하고 있다.
지금 사용하고 있는(학원에서 쓴) log4j.xml 을 사용해서 로그 기록을 하려보니
세상에 15년도에 지원 종료됐고 심지어 2.x 버전은 보안 이슈로 한바탕 뒤집혀진 적도 있었단다 ㅋㅋㅋㅋ
https://www.yna.co.kr/view/AKR20211211035951009
"컴퓨터 역사상 최악 취약점 발견" 전세계 보안업계 화들짝(종합) | 연합뉴스
(서울=연합뉴스) 전명훈 정래원 기자 = 거의 모든 인터넷 서버에서 광범위하게 사용되는 소프트웨어에 치명적 보안 취약점이 발견돼 전 세계 사이버...
www.yna.co.kr
ㅋㅋㅋㅋㅋㅋ
사실 안 웃기다. 이렇게 아무 생각없이 사용하다니... 반성하자.
일단 로그를 찍기 위해 log4j2로 업데이트 한다.
2023-01-18 15:30:50,675 DEBUG [HikariPool-1 housekeeper] pool.HikariPool (HikariPool.java:417) - HikariPool-1 - Pool stats (total=10, active=0, idle=10, waiting=0)
- Total : 전체 커넥션의 수, 활성화 상태와 유휴 상태를 커넥션 수
- Active : 활성화 상태, 어플리케이션에서 커넥션풀로부터 해당 커넥션을 가져감.
- Idle : 유휴 상태, DB로부터 maximum-pool-size 만큼의 커넥션을 연결하고 커넥션풀에 담아둠.
- DB로부터 close 되지 않도록 유지함.
- Waiting : 대기 상태, 모든 커넥션이 Active 상태로 커넥션이 커넥션풀로 반환되기를 기다림.
- connectionTimeout (default : 30000 (30 seconds)) 설정한 최대 대기 시간을 초과하면 SQLException을 발생시킴.
흠...냐
별상관 없는 듯하다.
그래도 이 기회에 로그찍는 법 배웠다.
'💻 STUDY > JAVA SPRING' 카테고리의 다른 글
Spring MVC (0) | 2024.06.03 |
---|---|
스프링 입문 강의 (0) | 2024.05.09 |