본문 바로가기
FullStack/21. Java

java.sql.SQLException: Failed to validate a newly established connection

by nakanara 2020. 3. 16.
반응형

테스트를 위해서 (MariaDB -> Oracle) DB 정보만 변경했는데 다음의 오류가 드문드문 발생하였다.
계속 발생하는 것도 아닌 드문드문, 급하게 테스트를 하면서 DB 접속 정보만 바꾼 것이 문제가 되었다.

validationQuery를 MariaDB에서 사용했던 select 1로 해둔 상태에서 Oracle로 변경하여서 발생

java.sql.SQLException: Failed to validate a newly established connection.
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:831)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:646)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:198)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)
<Context path="/">
  <Resource name="jdbc"
    auth="Container"
    factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
    type="javax.sql.DataSource"
    driverClassName="oracle.jdbc.OracleDriver"
    url="jdbc:oracle:thin:@localhost:1521:ora"
    ...
    minEvictableIdleTimeMillis="60000"
    validationQuery="SELECT 1 from dual" -- validationQuery 문법이 맞지 않아서 발생
    testOnBorrow="true"
  />

</Context>

https://tomcat.apache.org/tomcat-8.5-doc/jdbc-pool.html

반응형