공부, 기록

DBCP 본문

공부/DATABASE

DBCP

무는빼주세요 2021. 5. 16. 21:02

DBCP : DB와 어플리케이션의 연결을 안전하고 편리하게 하기 위한 방법으로 커넥션의 최대 수, 최대 대기시간 등을 설정할 수 있다.

 

EX)COMMONS DBCP

initialSize BasicDataSource 클래스 생성 후 최초로 getConnection() 메서드를 호출할 때 커넥션 풀에 채워 넣을 커넥션 개수
maxActive 동시에 사용할 수 있는 최대 커넥션 개수(기본값: 8)
maxIdle 커넥션 풀에 반납할 때 최대로 유지될 수 있는 커넥션 개수(기본값: 8)
minIdle 최소한으로 유지할 커넥션 개수(기본값: 0)

 

DBCP의 크기가 커지면 메모리 소모는 늘어나지만 사용자의 대기시간이 줄어든다. 

 

JDBC 애플리케이션 코드에서 풀링의 이점을 극대화하려면 항상 연결을 명시적으로 닫아줘야 함. 

 

maxIdle과 maxActive는 같은 값을 가지는 것이 효율적이다 만약 maxActive값이 더 크다면 일부 커넥션이 매번 생성했다 닫는 비용이 발생할 수 있다.

 

어플리케이션의 Thread의 개수와 함께 고려하여 CP의 크기를 정해야한다. 보통 CP보다 Thread를 여유있게 설정하는 것이 좋음.

 

 

참고 : 

d2.naver.com/helloworld/5102792

www.holaxprogramming.com/2013/01/10/devops-how-to-manage-dbcp/