개발 메모장

[Spring] MySQL(Maria) DataSource 프로퍼티 본문

Server

[Spring] MySQL(Maria) DataSource 프로퍼티

Delon 2021. 5. 1. 21:22

 

maxWaitMillis Exception 발생 전까지 pool에 connection 객체가 반환될 때 까지 기다리는 시간,

기본값은 -1 (계속 대기)
validationQuery pool이 connection을 반환하기 전엔 지정한 쿼리를 날려 유효한 connection인지 확인한다.

기본적으로 "select 1" 쿼리를 날려 테이블에 직접적인 read는 발생하기 않지만, 요청하는 만큼의 리소스를 사용하게 된다.

하지만 가장 확실하게 connection의 유효성을 확인할 수 있다.
testOnBorrow pool에서 connection을 가져오기 전에 유효성을 확인한다.

기본값은 true.

실패하면 pool에서 connection 객체는 삭제된다. 이후 다른 connection으로 재시도 한다.

testOnReturn pool에 connection을 반환하기 전에 유효성을 확인한다.

기본값은 false
testWhileIdel evictor 스레드가 실행될때 유휴(Idle)상태의 connection을 대상으로 유효성 검사를 실행

기본값은 false 
timeBetweenEvictionRunsMillis evictor 스레드가 반복적으로 실행되는 시간 설정

기본값은 -1  (실행되지 않음)
numTestsPerEvictionRun evictor 스레드가 한번에 검사할 connection 객체의 수

기본값은 3
minEvictableIdleTimeMillis evictor 스레드가 삭제하기 위하여 connection 객체가 유휴(idle) 상태로 있어야하는 최소 시간. 

기본값은 -1 / 모든 connection 객체가 유효하다 판단
 maxConnLifetimeMillis connection객체의 최대 수명시간

시간이 초과되면 유효성검사, 활성화, 비활성화를 시도할때 실패한다.

기본값은 -1 (무한)
logExpiredConnections maxConnLifetimeMillis 이 초과될 경우 log를 남길지 여부

기본값은 true
initialSize pool 생성시 최초의 connection 객체 수

기본값 0
maxTotal pool에서 허용되는 최대 connection 수

기본값은 8

음수이면 무한대
maxIdle pool안에서 connection이 해제되지 않고, 유휴(idle)상태로 있을 수 있는 최대 connection 수

기본값은 8

음수이면 무한대
minIdle pool안에서 connection이 해제되지 않고, 유휴(idle)상태로 있을 수 있는 최대 connection 수

기본값은 0
poolPreparedStatements pool안에 statement pool 여부를 정함. 

기본값은 false

statement는 query parse의 대한 값으로 문법이나, 컬럼 참조 여부, 최적화 등을 판별한 값으로 statement pool은 이런 statement를 캐싱시켜 둔다.
maxOpenPreparedStatements statement pool로 부터 동시에 open 가능한 statement 수

기본값은 0 (무한대)

지정하지 않으면 OOM 발생 가능성 있음

 

Comments