连接池突然不能使用了,重启应用仍然报连接池耗尽,最后debug发现是有人创建了dual表,导致校验语句select 1 from dual返回值为空,而无法通过连接池的连接校验。
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
at org.apache.commons.dbcp.PoolingDriver.connect(PoolingDriver.java:183)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
... 6 more
Caused by: java.util.NoSuchElementException: Could not create a validated object, cause: ValidateObject failed
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:871)
at org.apache.commons.dbcp.PoolingDriver.connect(PoolingDriver.java:175)