DB별 Validation Query

    1. Validation Query란


    커넥션 풀을 유지하기 위해서는 Validation Query를 사용하는 경우가 있다. 특히 Mysql을 할 때는 Validation Query는 거의 필수라고 생각해도 무방하다. Mysql은 서버의 설정마다 다르지만, 한번 잡은 커넥션을 일정 시간안에 재사용하지 못할 경우 에러를 내보내게 되는데 이때 에러를 한번 무시하는 용도로 Validation Query를 사용한다.


    한마디로 Validation Query라는 것은 커넥션을 Loss할 경우 에러가 발생되는 것을 예방(몸빵)하는 것이라고 생각하면 된다.



    2. DB별 Validatioin 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



    3. Validation Query가 필요할 때의 에러 메세지


    The last packet successfully received from the server was 56588 milliseconds ago.


    위 에러메세지는 커넥션을 잃어버렸다는 것을 의미한다. Mysql은 커넥션이 지정된 시간동안 다시 연결이 안되면, 위와 같은 에러를 뱉어내고 에러를 발생시킨다. 이것을 예방하기 위해서, Validation Query를 사용하는 경우가 있다.

    반응형

    'DB > Common' 카테고리의 다른 글

    무료 DB Tool, DBeaver (디비버)  (0) 2021.05.22

    댓글

    Designed by JB FACTORY