许多数据库连接池库提供了测试其SQL连接以实现空闲的能力.例如,JDBC池库c3p0有一个名为的属性preferredTestQuery,它以配置的间隔在连接上执行.同样,Apache Commons DBCP也有validationQuery.
我见过的许多示例 查询都是针对MySQL的,并建议使用它SELECT 1;作为测试查询的值.但是,此查询不适用于某些数据库(例如HSQLDB,SELECT 1需要一个FROM子句).
是否存在与数据库无关的查询,该查询具有同等效率,但适用于所有SQL数据库?
编辑:
如果没有(似乎是这种情况),有人可以建议一组适用于各种数据库提供程序的SQL查询吗?我的目的是以编程方式确定我可以根据我的数据库提供程序配置使用的语句.
我有一个很好的小Spring Boot JPA Web应用程序.它部署在Amazon Beanstalk上,并使用Amazon RDS来保存数据.然而,经常使用它并因此在一段时间后因此类异常而失败:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功收到的最后一个数据包是79,870,633毫秒.
成功发送到服务器的最后一个数据包是79,870,634毫秒.比服务器配置的'wait_timeout'值长.您应该考虑在应用程序中使用之前过期和/或测试连接有效性,增加服务器配置的客户端超时值,或使用Connector/J连接属性"autoReconnect = true"来避免此问题.
我不知道如何配置此设置,但无法在http://spring.io上找到相关信息(虽然这是一个非常好的网站).有哪些想法或信息指针?