validationQuery
Tomcat 의 JDBC 설정에 DB connection 의 validation 을 다루는 option 이 있다.(ref. 1 참조)
- validationQuery
- validationQueryTimeout
- testOnBorrow
- testOnReturn
validationQuery 가 필요한 이유
여기서 이 validationQuery 가 db connection 이 잘 맺어 있는지 확인할 때 쓰이는 query 를 정의하는 부분이다. 그런데 이녀석이 왜 필요할까?그것에 대한 부분을 ref. 2 에서 설명해 주고 있다.
Why is the validationQuery element needed? When a database server reboots, or there is a network failure, all the connections in the connection pool are broken and this normally requires a Application Server reboot. However, the Commons DBCP (Database Connection Pool) which is used by the Tomcat application server can validate connections before issuing them by running a simple SQL query, and if a broken connection is detected, a new one is created to replace it. To do this, you will need to set the "validationQuery" option on the database connection pool.DB 가 reboot 을 하거나 네트워크 장애등이 생기면 DB connection pool 에 있는 모든 connection 이 끊어진다. 이것은 일반적으로 Application server 를 reboot 해야 한다.
Tomcat application server 에서는 Commons DBCP 를 사용하는데, 이 Common DBCP 에서 이 validationQuery 기능을 제공해 준다. Common DBCP 는 validationQuery 에 정의된 query 를 날려서 connection 이 정상적인지를 확인한 후에 connection 이 끊어졌으면 새로운 녀석을 만들어서 기존의 녀석을 대체 하게 된다.
See Also
- Tomcat JDBC Connection Pool configuration for production and development | Codingpedia.org : validation Query 에 대한 실제 설정 예제를 확인할 수 있다.
- DBCP validationQuery 설정
References
- Apache Tomcat 7 (7.0.57) - JNDI Resources HOW-TO
- Configuring a SQL Server Datasource in Apache Tomcat
댓글 없음:
댓글 쓰기