[Java] DBCP

이지현·2023년 2월 7일
0

Java

목록 보기
24/46
post-thumbnail

✔️ 기존 JDBC 프로그래밍의 문제점

  • 클라이언트 요청 처리에서 가장 많은 시간을 소요하는 것은 Connection 객체를 생성하고 DB에 접속하는 것
  • 동시 사용 가능한 연결 개수의 제한 필요

✔️ DBCP(Database Connection Pool)

1. 특징

  • JDBC 프로그래밍 문제점 보완
  • 미리 여러 개의 데이터베이스 Connection을 생성해서 보관
  • 요청마다 하나씩 Connection을 꺼내서 사용하고 사용이 끝나면 다시 Pool로 반환
  • 오픈소스 라이브러리 종류: Apache의 Commons DBCP, Tomcat-JDBC, BoneCP, HikariCP ...

2. 주요 속성

  • initialSize : BasicDataSource 클래스 생성 후 최초로 getConnection() 메서드를 호출할 때 커넥션 풀에 채워 넣을 커넥션 개수
  • maxTotal (1.x에서는 maxActive) : 동시에 사용할 수 있는 최대 커넥션 개수
  • maxIdle : 커넥션 풀에 반납할 때 유지될 수 있는 커넥션 개수
  • minIdle : 최소한으로 유지할 커넥션 개수(요청량이 적을 때 사용하지 않는 자원을 반납하기 위한 옵션)

3. 논리적 오류를 회피하기 위한 설정 방법

  • maxTotal >= initialSize
    초기에 생성되는 커넥션의 개수는 최대로 사용 가능한 커넥션의 개수보다 크면 안됨
  • maxIdle >= minIdle
    그 반대인 maxIdle < minIdle로 설정할 수는 있지만 최대가 최소보다 작을수는 없음
  • maxTotal = maxIdle
    maxTotal 값과 maxIdle 값이 같은 것이 바람직
profile
2023.09 ~ 티스토리 이전 / 2024.04 ~ 깃허브 블로그 이전

0개의 댓글