Apache Commons DBCP
testOnBorrow
- connection pool에서 connection을 가져올 때 해당 connection이 유효성 검사 여부
- 기본값은 false이며, 일반적으로 기본값을 사용한다. true설정하게 되면 매번 validationQuery를 수행하기 때문에 약간의 성능저하를 감수해야 한다.
- DBへのコネクションが切断されちゃってた場合、再接続
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
...
<property name="validationQuery" value="select 0 from dual" />
<property name="validationQueryTimeout" value="5" />
<property name="testOnBorrow" value="true" />
</bean>
validationQuery
- connection 유효성 검사시에 사용할 쿼리문
- DB 리소스를 최대한 적게 사용하는 쿼리를 사용하는게 좋다.
db |
query |
hsqldb |
select 1 from INFORMATION_SCHEMA.SYSTEM_USERS |
Oracle |
select 1 from dual |
DB2 |
select 1 from sysibm.sysdummy1 |
mysql |
select 1 |
microsoft SQL Server |
select 1 (tested on SQL-Server 9.0, 10.5 [2008]) |
postgresql |
select 1 |
ingres |
select 1 |
derby |
values 1 |
H2 |
select 1 |
Firebird |
select 1 from rdb$database |
References