[컴][Java] Tomcat 에서 validationQuery

tomcat refresh / db refresh



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

  1. Tomcat JDBC Connection Pool configuration for production and development | Codingpedia.org : validation Query 에 대한 실제 설정 예제를 확인할 수 있다.
  2. DBCP validationQuery 설정


References

  1. Apache Tomcat 7 (7.0.57) - JNDI Resources HOW-TO
  2. Configuring a SQL Server Datasource in Apache Tomcat




댓글 없음:

댓글 쓰기