Apache Commons DBCP
maxActive : 서비스에서 동시에 사용될수 있는 최대 커넥션 개수. (기본값 : 8)
- (maxAcive - maxIdle ) 개의 커넥션은 pool 에 반환되지 않고 제거(real destory) 된다.
maxIdle : 커넥션 풀에서 유지될수 있는 idle 상태 커넥션의 최대 개수. (기본값 : 8)
minIdle : 커넥션 풀에 유지되수 있는 idle 상태 커넥션의 최소 개수. (기본값 : 0)
maxWait : 커넥션 사용이 많아져서 커넥션 풀이 비었을때 사용할수 있는 커넥션을 반환받기까지 기다릴수 있는 최대시간 (ms) (기본값: -1, 무한대기)
validationQuery : 커넥션 풀에서 커넥션을 가져올때 해당 커넥션의 유효성 검증에 사용할 SQL Query (반드시 하나 이상의 row 가 반환될 SELECT 구분이어야 함.)
testOnBorrow : 커넥션 풀에서 커넥션을 가져올때 해당 커넥션의 유효성 검사를 할것인지 여부. (기본값 : true, 반드시 validationQuery 가 설정되어 있어야 함.)
testOnReturn : testOnBorrow 와 비슷함. 다만 유효성 검사 시점이 커넥션을 풀에 반환할때 이다.
testWhileIde : 커넥션 유효성 검사를 풀에 idle 상태에 존재할때 실시할것인지 여부 (기본값 : false, 반드시 validationQuery 가 설정되어 있어야 함.)
timeBetweenEvictionRunsMillis : 설정된 시간 간격마다 놀고 있는 커넥션을 풀에서 제거하는 evictor thread 가 실행된다. minIdle 로 커넥션을 유지한다.
numTestsPerEvictionRun : evictor thread 가 한번실행시 검사할 대상 커넥션 개수.
minEvictableIdleTimeMillis : evictor thread 작업시 설정된 시간만큼 사용되지 않은 커넥션을 제거한다. 그리고, thestWhileIdle 옵션이 true일 경우 설정된 시간을 초과하지 않은 커넥션에 대해서 validationQuery를 수행해서 유효하지 않은 커넥션을 제거한다.
evictor thread 는 마지막으로 minIdle 커넥션을 생성 유지시킴.
참고url : http://commons.apache.org/proper/commons-dbcp/configuration.html
http://dimdim.tistory.com/entry/DBCP%EC%9D%98-%EC%9D%BC%EB%B0%98%EC%A0%81%EC%9D%B8-%EC%84%A4%EC%A0%95%EA%B0%92-%EA%B0%80%EC%9D%B4%EB%93%9C
tomcat DBCP
testWhileIdle="true" 해야 evitor가 timeBetweenEvictionRunsMillis 마다 validationQuery 작동 하며
minEvictableIdleTimeMillis 이상 사용되지 않은 connection은 validationQuery 대신 연결해제 시키고
새로운 connection 을 생성함.
ex) timeBetweenEvictionRunsMillis=30000 (30초), minEvictableIdleTimeMillis=60000 (60초) 이면
실제 90초 마다 idle connection 이 갱신됨.
'Java' 카테고리의 다른 글
성능좋은 file 입출력(파일 이동) (0) | 2009.12.02 |
---|---|
Collections를 이용한 List 객체들의 Sorting(정렬) [펌] (0) | 2009.11.26 |
이미지 썸네일 처리 (0) | 2009.11.25 |
불필요한 코딩을 줄이자!(IBM developerWorks) (0) | 2009.04.09 |