본문 바로가기
Programing/Java

Java DBCP Datasource 설정

by Tomining 2016. 2. 23.
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="100" />
<property name="maxActive" value="150" />
<property name="maxWait" value="10000" />
<property name="maxIdle" value="30" />
<property name="minIdle" value="20" />
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="true" />
<property name="validationQuery" value="select 1 from dual" />
<property name="testWhileIdle" value="true" />
<property name="timeBetweenEvictionRunsMillis" value="130000" />
<property name="minEvictableIdleTimeMillis" value="120000" />
<property name="numTestsPerEvictionRun" value="20" />
<property name="removeAbandonedTimeout" value="30" />
<property name="removeAbandoned" value="true" />
<property name="logAbandoned" value="false" />
</bean>


정의한 값


 

1. initialSize : 풀의 초기 커넥션 갯수

2. maxActive : 최대 커넥션 갯수
3. maxWait : 커넥션이 존재하지 않을 때, 커넥션을 얻기까지 대기하는 최대 대기시간
4. maxIdle : Idle상태에 풀이 소유한 최대 커넥션 갯수
5. testOnBorrow : 풀에서 커넥션을 가져올시 커넥션의 유효성 검사
6. testOnReturn : 풀에 커넥션을 리턴할 때 커넥션의 유효성 검사
7. validationQuery : validate Query
8. testWhileIdle : Idle상태에 커넥션의 유효성 검사
9. timeBetweenEvictionRunsMillis : 설정된 주기를 통해 Evict(유효하지 않는 커넥션/정의된 시간이 만료된 커넥션을 풀에서 제거) 쓰레드를 수행
10. minEvictableIdleTimeMiilis : Evict 쓰레드를 수행시, 만료여부를 체크할 시간을 정의
11. numTestsPerEvictionRun : Evict 쓰레드를 수행시 수행할 커넥션의 갯수
12. removeAbandonedTimeout : 유효하지 않은 커넥션의 삭제시의 타임아웃
13. removeAbandoned : 유효하지 않는 커넥션의 제거 여부
14. logAbandoned : 유효하지 않는 커넥션을 생성한 코드 위치 로그생성 여부

정의하지 않은 값
1. defaultAutoCommit : 생성된 커넥션의 기본 auto commit 여부
2. defaultReadOnly : 생성된 커넥션의 기본 read-only 여부
3. defaultTransactionIsolation : 생성된 커넥션의 기본 트랜잭션 격리 수준
4. defaultCatalog : 생성된 커넥션의 기본 카탈로그
5. connectionInitSqls : ?
6. poolPreparedStatements : Prepared Statements 사용 여부
7. maxOpenPreparedStatements : Prepared Statements 최대 Open 갯수
8. accessToUnderlyingConnectionAllowed : ?