Connection Pool 사용 시 release() 코드 위치의 중요성


Connection Pool 사용 시 release() 코드 위치의 중요성

관리하고 있는 채팅 시스템이 있는데 데이터베이스 연결 시 Connection Pool을 사용하고 있습니다. 코드는 커넥션을 얻고, 데이터베이스 결과값을 가져온 후에 다시 커넥션을 반환하는 과정으로 작성되어 있습니다. 커넥션 반환 문제 그러던 중 커넥션 풀을 사용할 때 문제가 생겼습니다. 커넥션이 계속 증가하고 있었는데, 그러다보니 커넥션 수 제한에 걸려서 서버 오류가 발생하기도 했습니다. 이 문제를 해결하기 위해 pool 생성할 때 connectionLimit을 크게 올려보기도 했지만 채팅 서버에서는 오류가 나지 않지만, DB서버 과부하로 처리가 매우 느려졌습니다. 마찬가지로 max_connections, wait_timeout 도 변경했지만 사용량이 많을 때는 속도가 상당히 떨어졌습니다. 그래서 이런 ..


원문링크 : Connection Pool 사용 시 release() 코드 위치의 중요성