웹프로그래밍/jsp

jsp - 커넥션 풀(conection pool)

zelkova 2011. 4. 18. 18:35

<목차로 돌아가기>

커넥션 풀이란
데이터베이스에 미리 연결시켜 두었다가 사용자가 들어오면 연결시켜 둔 것을 부여해 주는 것을 말합니다.

조금더 쉽게 설명하자면 

컴퓨터를 사용해야할때 집에 컴퓨터가 없다면 컴퓨터를 사서 설치하는 것보다 PC방에가서 컴퓨터를 사용하는 것이 더 빠를 것이다.

커넥션풀이 바로 컴퓨터라고 생각하면 된다. 


커넥션 풀의 장점
데이터 베이스에 미리 연결 시켜 두기 때문에 데이터베이스에 연결에 시간이 소비되지 않는다.
그리고 커넥션을 계속해서 재사용하기 때문에 생성되는 커넥션 수가 많지 않다.


사용 방법
DBCP관련 jar 파일 및 JDBC 드라이버 Jar 파일 설치하기 <--클릭
② 커넥션 풀 관련 설정 파일 초기화하기
③ 커넥션 풀 관련 드라이버 로딩하기
④ 커넥션 풀로부터 커넥션 사용하기

① DBCP관련 jar 파일 및 JDBC 드라이버 Jar 파일 설치하기
DBCP API 관련 JAR파일
DBCP 1.2.1 - commons-dbcp1.2.1.zip

DBCP API가 사용하는 자카르타 Pool API의 jar파일
Pool 1.2 - common-pool-1.2.zip

Pool API가 사용하는 자카르타 Collection API jar파일
Collection 3.1 -commons-collections-3.1.zip


②커넥션 풀 관련 설정 파일 초기화하기

 속성  설명
 maxActive  커넥션 풀이 제공할 최대 커넥션 개수, 사이트의 최대 커넥션 사용량을 기준으로 지정. 동시 접속자 수에 따라서 지정한다.
 WhenExhaustedAction  커넥션 풀에서 가져올 수 있는 커넥션이 없을 때 어떻게 동작할 지를 지정한다. 1일 경우 maxWait 속성에서 지정한 시간만큼 커넥션을 구할 때까지 기다리며, 0일 경우 에러를 발생시킨다. 2일 경우에는 일시적으로 커넥션을 생성해서 사용한다.
 maxWait  whenExhaustedAction 속성의 값이 1일 때 사용되는 대기 시간. 단위는 1/1000초이며, 0보다 작을 경우 무한히 대기한다.
 maxIdle  사용되지 않고 풀에 저장될 수 있는 최대 커넥션 개수, 음수의 경우 제한이 없다.
 minIdle  사용되지 않고 풀에 저장될 수 있는 최소 커넥션 개수, 사용되지 않는 커넥션의 최소 개수를 0으로 지정하게 되면 풀에 저장된 커넥션의 개수가 0이 되어 커넥션을 다시 생성하게 된다. 따라서 커넥션의 최소 개수 는 5개 정도로 지정해 두는 것이 좋다.
 testOnBorrow  true일 경우 커넥션 풀에서 커넥션을 가져올 때 커넥션이 유효한 지의 여부를 검사한다.
 testOnReturn  true일 경우 커넥션 풀에 커넥션을 반환할 때 커넥션이 유효한 지의 여부를 검사한다.
 timeBetweenEvctionRunsMillis  사용되지 않고 풀에 저장될 수 있는 최소 커넥션 개수. 이 값을 알맞게 지정해서 사용되지 않는 커넥션을 풀에서 제거하는 것이 좋다. 커넥션의 동시 사용량은 보통 새벽에 최저이며 낮 시간대에 최대에 이르게 되는데 이 두시간대에 필요한 커넥션의 개수 차이는 수십 개의 이르게 된다. 이때 최대 상태에 접어들었다가 최소 상태로 가게되면 풀에서 사용되지 않는 커넥션의 개수가 점차 증가하게 된다. 따라서 사용되지 않는 커넥션은 일정 시간 후에 삭제되도록 하는 것이 좋다. 보통 10~20분 단위로 사용되지 않는 커넥션을 검사하도록 지정하는 것이 좋다.
 numTestsPerEvictionRun  사용되지 않는 커넥션을 몇개 검사할지 지정한다.
 minEvictableIdleTimeMillis  사용되지 않는 커넥션을 추출할 때 이 속성에서 지정한 시간 이상 비활성화 상태인 커넥션만 추출한다. 양수가 아닌 경우 비활성화된 시간으로는 풀에서 제거되지 않는다. 시간단위는 1/1000초이다.
 trestWhileIdle  true일 경우 비활성화 커넥션을 추출할 때 커넥션이 유효한 지의 여부를 검사해서 유효하지 않은 커넥션은 풀에서 제거한다.


③커넥션 풀 관련 드라이버 로딩하기

반응형

'웹프로그래밍 > jsp' 카테고리의 다른 글

JSTL-표현언어란?  (0) 2011.04.25
jsp와 eclips 연동하기  (0) 2011.04.19
JSP - 자바빈  (0) 2011.04.13
jsp - 쿠키 사용하기  (0) 2011.04.01
jsp - 레이아웃 템플릿  (0) 2011.03.25