본문 바로가기
DB

DBCP 속성 설명 ( ManagedBasicDataSource 구성 매개 변수 )

by 애플 로그 2021. 4. 13.
반응형

DBCP 속성 설명

( BasicDataSource, ManagedBasicDataSource 구성 매개 변수 )

 

속성 설명
initialSize 초기에 생성되는 커넥션의 개수
maxActive 커넥션 풀이 제공할 최대 커넥션의 개수
whenExhaustedAction 커넥션 풀에서 가져올 수 있는 커넥션이 없을 때 어떻게 동작할지를 지정한다.

- 1 일 경우 maxWait 속성에서 지정한 시간만큼 커넥션을 구할 때 까지 기다리며, 
- 0 일 경우 에러를 발생시킨다. 
- 2 일 경우에는 일시적으로 커넥션을 생성해서 사용한다
maxWait 풀에 커넥션에 존재하지 않을 때, 커넥션이 다시 풀에 리턴 될 때까지 대기시간, 1/1000초 단위, -1일 경우 무한대기
maxIdle 사용되지 않고 풀에 저장될 수 있는 최대 커넥션 개수, 음수일 경우 제한이 없다.

풀 반환 시점에 이미 maxIdle 이상의 커넥션이 풀에 있을 경우 풀에 반환되지 않고 해당 커넥션은 close 된다.
minIdle 사용되지 않고 풀에 저장될 수 있는 최소 커넥션 개수, 음수일 경우 제한이 없다.

Evictor가 실행 될 때 유효한 값이다.
testOnBorrow true 일 경우 커넥션 풀에서 커넥션을 가져올 때 커넥션이 유효한지의 여부 검사
testOnReturn true 일 경우 커넥션 풀에서 커넥션을 반환할 때 커넥션이 유효한지의 여부 검사
testWhileIdle true 일 경우 Evictor 가 비활성화 커넥션을 추출할 때 커넥션이 유효한지의 여부를 검사해서 유효하지 않은 커넥션은 풀에서 제거
validationQuery 커넥션이 유효한지 유무를 확인할 때 사용할 쿼리

MYSQL : select 1
MSSQL : select 1
postgreSQL : select 1
ORACLE : select 1 from dual
timeBetweenEvictionRunsMillis 설정된 주기를 통해 Evictor(유효하지 않는 커넥션/정의된 시간이 만료된 커넥션을 풀에서 제거) 쓰레드를 수행한다.

양수가 아닌경우 실행되지 않는다.
minEvictableIdleTimeMillis 사용되지 않은 커넥션을 추출할 때 이 속성에서 지정한 시간 이상 비활성화 상태인 커넥션만 추출한다.
양수가 아닌 경우 비활성화된 시간으로 풀에서 제거 안됨. 1/1000초 단위
removeAbandonedTimeout  반납이 안되고 있는 커넥션 삭제 시의 타임아웃
removeAbandoned  반납이 안되고 있는 커넥션 삭제 유무 (커넥션 누수)
logAbandoned  반납이 안되고 있는 커넥션을 생성한 코드 위치 로그생성 여부
defaultAutoCommit  생성된 커넥션의 기본 auto commit 여부
defaultReadOnly  생성된 커넥션의 기본 read-only 여부
defaultTransactionIsolation  생성된 커넥션의 기본 트랜잭션 격리 수준
defaultCatalog 생성된 커넥션의 기본 카탈로그

 

 

 

spring bean 등록시 example

 

    <bean id="dataSource" class="org.apache.commons.dbcp.ManagedBasicDataSource" destroy-method="close">
        <property name="driverClassName" value=""/>
        <property name="url" value=""/>
        <property name="username" value=""/>
        <property name="password" value=""/>

        <property name="initialSize" value="10"/>        
        <property name="maxActive" value="20"/>     
        <property name="maxIdle" value="10" />     
        <property name="minIdle" value="5" />     
        <property name="testOnBorrow" value="false"/>
        <property name="testOnReturn" value="false"/>
        <property name="testWhileIdle" value="true"/>
        <property name="timeBetweenEvictionRunsMillis" value="180000"/>
        <property name="minEvictableIdleTimeMillis" value="300000"/>
        <property name="validationQuery" value="select 1" />   

    </bean>

 

 

참고 : 

commons.apache.org/proper/commons-dbcp/configuration.html

 

DBCP – BasicDataSource Configuration

BasicDataSource Configuration Parameters Parameter Description username The connection user name to be passed to our JDBC driver to establish a connection. password The connection password to be passed to our JDBC driver to establish a connection. url The

commons.apache.org

 

'DB' 카테고리의 다른 글

oracle 21c XE 다운로드 및 설치  (0) 2022.02.23
oracle 스키마명 없이 조회하기 ( synonym )  (0) 2021.02.24

댓글