Attribute | Description | Type | Default Value |
defaultAutoCommit | 기본값은 풀에 의해서 생성된다. 만약 설정되지 않으면, 기본값은 JDBC Driver의 기본값이다. 만약 이것도 설정되지 않으면 setAutoCommit 메소드는 호출되지 않을 것이다. | boolean |
|
defaultReadOnly | 기본값은 풀에 의해서 설정된다. 만약 설정되지 않으면 setReadOnly 메소드는 호출되지 않을 것이다. read only 모드를 지원하지 않는 몇몇 드라이버도 있다. (예: Informix) | boolean |
|
defaultTransactionIsolation | 트랜잭션 격리상태. 기본값은 풀에 의해서 생성되는데, 다음 중의 하나이다. - NONE - READ_COMMITTED - READ_UNCOMMITTED - REPEATABLE_READ
- SERIALIZABLE | String |
|
defaultCatalog | 기본값은 풀에 의해서 설정된다. |
|
|
driverClassName | 사용할 JDBC 드라이버의 fully qualified Java class name. | String |
|
username |
| String |
|
password |
| String |
|
maxActive | 동시간에 존재할 수 있는 active 커넥션의 최대 개수. | int | 100 |
maxIdle | 커넥션풀 안에 남아있을 수 있는 idle 커넥션의 최대 개수. evictor 쓰레드에 의하여 idle 커넥션은 주기적으로 체크되며, minEvictableIdleTimeMillis동안 idle인 커넥션은 해제된다. | int | 100 (maxActive와 동일) |
minIdle | 커넥션풀 안에 항상 남아있어야 하는 idle 커넥션의 최소 개수. validation 쿼리가 실패할 경우 커넥션풀은 minIdle 이하로 축소될 수 있다. | int | initialSize 로부터 유도된다. |
initialSize | 커넥션풀이 시작될 때 생성될 초기 커넥션 수 | int | 10 |
maxWait | available한 커넥션이 없을 때, 커넥션을 반환받기 위해 커넥션풀이 wait할 수 있는 최대 시간 | int | 30000 (밀리초, =30초) |
testOnBorrow | 커넥션풀에서 객체가 borrowed 될 때, 객체을 validation 할 지의 여부. validate에 실패한 객체는 커넥션풀에서 삭제되며, 다른 객체로 다시 validate를 시도한다. 참고) true인 경우, 반드시 validationQuery가 설정되어야 한다. (null이 아닌 값으로) 보다 효율적인 validation을 위해서 validationInterval을 함께 사용 가능하다. | boolean | false |
testOnReturn | 객체가 커넥션풀로 반납(return)될 때, 객체를 validation 할 지의 여부. 참고) true인 경우, 반드시 validationQuery가 설정되어야 한다. (null이 아닌 값으로) | boolean | false |
testWhileIdle | timeBetweenEvictionRunsMillis에 지정된 주기마다 evictor 쓰레드가 실행되는데, 이 evictor 쓰레드가 동작할 때 idle 객체를 validation 할 지의 여부. validate에 실패한 객체는 커넥션풀에서 삭제된다. 참고) true인 경우, 반드시 validationQuery가 설정되어야 한다. (null이 아닌 값으로) | boolean | false |
validationQuery | 커넥션의 연결 상태를 validate하기 위해 사용되는 SQL 쿼리. mysql: select 1 oracle: select 1 from dual | String | null |
validationQueryTimeout | validation 쿼리가 실패 처리되기까지의 타임아웃 시간 (초) 0 이하이면 타임아웃을 사용하지 않는다. | int | -1 |
validatorClassName | 커넥션 validate를 할 때 validation 쿼리를 사용하는 대신 Validator 인터페이스(org.apache.tomcat.jdbc.pool.Validator)를 구현한 클래스를 사용할 수 있다. 이 때 사용할 Validator 인터페이스를 구현한 콘크리트 클래스의 fully qualified Java class name을 지정한다. | String | null |
timeBetweenEvictionRunsMillis | evictor 쓰레드(validation/cleaner 쓰레드)를 실행시키는 주기. 참고) evictor 쓰레드의 역할 : 소스 참고하여 재확인 필요 - timeBetweenEvictionRunsMillis 동안 sleep한 후 동작한다. - removeAbandoned이 true일 경우, 버려진 커넥션을 체크한다. borrow된지 removeAbandonedTimeout 이상 된 커넥션을 remove 한다. - 현재 idle인 커넥션 수가 minIdle 값보다 크다면, minEvictableIdleTimeMillis시간 이상동안 idle 상태인 커넥션을 remove한다. - testWhileIdle이 true일 경우, idle 상태인 커넥션을 validation하여 유효하지 않은 커넥션을 remove 한다. 1초 미만으로 설정할 수 없다. | int | 5000 (5초) |
numTestsPerEvictionRun | tomcat-jdbc-pool에서는 사용되지 않는다. evictor 쓰레드의 각 실행마다 검사하는 객체의 개수 | int |
|
minEvictableIdleTimeMillis | 놀고있는 객체(idle 상태인 커넥션)가 커넥션풀에서 쫓겨나기까지의 최소 시간. 해당 시간(초) 동안 커넥션풀에서 idle 상태인 객체는 쫓겨날 수 있는 대상이 되며, minIdle, maxIdle 설정값을 고려하여 쫓겨나게 된다. | int | 60000 (60초) |
accessToUnderlyingConnectionAllowed | 사용되지 않음 DBCP에서 랩핑하기 이전의 원본 커넥션에 접근한다 | boolean |
|
removeAbandoned | removeAbandonedTimeout에서 지정한 시간이 초과되었을 때 버려진 커넥션을 remove할지의 여부. true로 설정하면, removeAbandonedTimeout에서 지정한 시간 이상 사용되지 않은 경우 커넥션이 버려졌고 제거해도 괜찮은 것으로 간주된다. 또한 커넥션을 제대로 close하지 않는 (잘못된) 응용프로그램으로부터 DB 커넥션을 복구할 수 있다. | boolean | false (logAbandoned와 마찬가지로) |
removeAbandonedTimeout | 커넥션이 버려지기까지의 타임아웃 시간. 해당 시간(초)이 초과된 커넥션은 버려진다. 이 값은 어플리케이션 내에서 가장 오래걸리는 쿼리의 수행시간을 고려하여 설정하여야 한다. |
| 60 (초) |
logAbandoned | 커넥션을 버리는(abandoned) application 코드를 찾기 위해서, 커넥션이 버려질 때의 stack trace를 로깅할지의 여부. (true로 할 시, 커넥션을 열 때 stack trace를 생성해야 하므로 오버헤드가 증가한다) | boolean | false |
connectionProperties | 새로운 커넥션을 establish 할 때, JDBC 드라이버로 전송될 커넥션 프로퍼티들. 문자열의 포맷은 반드시 다음과 같아야 한다. [propertyName=property;] 참고) "user"와 "password" 프로퍼티는 포함할 필요 없다. | String | null |
poolPreparedStatements | 사용되지 않음 |
| |
maxOpenPreparedStatements | 사용되지 않음 |
|
|
|
|
|
|
공부(~2016)/Server
댓글