커넥션풀에 대해서 알아보겠습니당 :-)
1. 커넥션 풀(DBCP)이란?
- 데이터베이스와 연결된 커넥션을 미리 만들어서 저장해두고 있다가 필요할 때 저장된 공간(pool)에서 가져다 쓰고 반환하는 기법
- 커넥션풀을 이용하면 커넥션을 미리 만들어두고 사용
- 데이터베이스의 부하를 줄일 수 있고 자원을 효율적으로 관리
2. JNDI(Java Naming and Directory Interface)란?
- 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견하고 참고(lookup)하기 위한 자바 API
- 외부에 있는 객체를 가져오기 위한 기술
- 특정 폴더에 필요한 데이터 소스(라이브러리)가 있는데 그것을 우리가 사용하기 위해 JNDI를 이용
3. 커넥션 풀을 사용하는 이유
사용자가 요청을 할 때마다 DB에 직접 연결해서 처리하는 경우 JDBC Driver를 로드하고 커넥션 객체를 생성하여 연결하고 종료하기 때문에 매우 비효율적이다.
이러한 문제를 해결하기 위해서 커넥션 풀을 사용해 효율적인 자원 관리를 할 수 있다.
4. Apache Tomcat-DBCP 설정 방법
1. 톰캣 설치 경로에서 tomcat-dbcp.jar 파일을 복사해서 프로젝트의 lib에 붙여넣기 한다.
2. Servers의 context.xml에 Resource를 추가한다.
더보기
auth : 컨테이너 자원 관리자
name : JDBC 이름
driverClassName : JDBC 드라이버
type : 웹에서 이 리소스를 사용할 때 DataSource
username : 계정
password : 계정 비밀번호
loginTimeout : 연결 끊어지는 시간
maxActive : 최대 연결 가능한 Connection 수 (기본 20개)
maxIdle : Connection pool 유지를 위해 최대 대기 Connection 숫자
maxWait : 사용 가능한 커넥션이 없을 때 커넥션 회수를 기다리는 시간 (1000 = 1초)
3. web.xml에 resource-ref를 추가한다.
4. 기존에 사용하던 방법은 주석처리 하고, 아래와 같이 호출한다.