일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Hudson
- zabbix
- gwt
- custom filter
- spring security
- spring transaction
- jquery serialize
- Spring
- MySQL
- COC
- spring jpa
- jquery
- querydsl
- JPA
- bootstrap jquery datepicker
- gwt-ext
- GEventEvaluator
- rember me
- SVN
- Drools Fusion
- drools
- guvnor
- CEP
- @SqlResultSetMapping
- JBoss Seam
- java tip
- jenkins
- maven
- ibatis
- jstl
- Today
- Total
봉 블로그
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://www.imaso.co.kr/?doc=
tomcat DBCP
testWhileIdle="true" 해야 evitor가 timeBetweenEvictionRunsMillis 마다 validationQuery 작동 하며
minEvictableIdleTimeMillis 이상 사용되지 않은 connection은 validationQuery 대신 연결해제 시키고
새로운 connection 을 생성함.
ex) timeBetweenEvictionRunsMillis=30000 (30초), minEvictableIdleTimeMillis=60000 (60초) 이면
실제 90초 마다 idle connection 이 갱신됨.
jboss connection pool
check-valid-connection-sql, valid-connection-checker-class-name 2개설정이 되어있으면
valid-connection-checker-class-name 가 작동함. (버그가 좀 있음. 사용 안하는게 좋음.)
IdleRemover 는 idle-timeout-minutes 의 1/2 시간마다 idle connection 중에서 idle-timeout-minutes
시간동안 사용되자 않은것들을 연결해제 하고 새로운 connection을 생성함.
마지막으로 DBCP 는 2010년 2월 이후로 업데이트가 안되고 있으며, 좀더 성능이 좋은 Tomcat JDB Connection Pool 을 사용하는게 좋다는 의견이 있다.