- JDBC 프로그래밍 문제점 보완
- 미리 여러 개의 데이터베이스 Connection을 생성해서 보관
- 요청마다 하나씩 Connection을 꺼내서 사용하고 사용이 끝나면 다시 Pool로 반환
- 오픈소스 라이브러리 종류: Apache의 Commons DBCP, Tomcat-JDBC, BoneCP, HikariCP ...
initialSize
: BasicDataSource 클래스 생성 후 최초로 getConnection() 메서드를 호출할 때 커넥션 풀에 채워 넣을 커넥션 개수maxTotal
(1.x에서는 maxActive) : 동시에 사용할 수 있는 최대 커넥션 개수maxIdle
: 커넥션 풀에 반납할 때 유지될 수 있는 커넥션 개수minIdle
: 최소한으로 유지할 커넥션 개수(요청량이 적을 때 사용하지 않는 자원을 반납하기 위한 옵션)
- maxTotal >= initialSize
초기에 생성되는 커넥션의 개수는 최대로 사용 가능한 커넥션의 개수보다 크면 안됨- maxIdle >= minIdle
그 반대인 maxIdle < minIdle로 설정할 수는 있지만 최대가 최소보다 작을수는 없음- maxTotal = maxIdle
maxTotal 값과 maxIdle 값이 같은 것이 바람직