Java 数据库连接错误MySQL,Tomcat

Java 数据库连接错误MySQL,Tomcat,java,mysql,tomcat,jdbc,apache-commons-dbcp,Java,Mysql,Tomcat,Jdbc,Apache Commons Dbcp,我正在为连接池使用以下dbcp设置 maxActive = 50 maxIdle = 10 minIdle = 2 initialSize = 2 maxWait = 30000 validationQuery="select 1" testOnBorrow=true testWhileIdle=true timeBetweenEvictionRunsMillis=60000 另外,我在连接URL中将auto_reconnect设置为true。我经常看到以下错误 com.mysql.jdbc.

我正在为连接池使用以下dbcp设置

maxActive = 50
maxIdle = 10
minIdle = 2
initialSize = 2
maxWait = 30000
validationQuery="select 1"
testOnBorrow=true
testWhileIdle=true
timeBetweenEvictionRunsMillis=60000
另外,我在连接URL中将auto_reconnect设置为true。我经常看到以下错误

com.mysql.jdbc.CommunicationsException: 与服务器的最后一次通信是28810秒前, 比服务器配置的“等待超时”值长。 您应该考虑终止和/或测试连接有效性。 在应用程序中使用之前,请增加服务器配置的值 用于客户端超时,或使用连接器/J连接属性 “autoReconnect=true”以避免此问题
有人知道这里出了什么问题吗?

自动恢复连接是否按其建议设置为true?您确定您实际上正在关闭连接以便将其释放回池中吗。这是来自调试日志记录吗?它是否显示在错误日志中?我想它可能只是告诉您没有任何活动正在进行,因此它正在关闭不需要的挂起打开的连接。此外,除非您正在调试问题,否则我将删除validationQuery、testOnBorrow、testWhileIdle和TimeBetweenvictionRunsmillis参数。是的,这是执行查询时发生的错误日志记录。此外,如建议的那样,它是autoReconnect=true。好的,那么很可能调用的查询需要很长时间才能完成,或者连接正在释放到连接池中。@BrianC使用validationQuery并不是一个真正的问题。如果您使用/*ping*/选择1,那么连接器/J将执行简单的协议ping,而不必运行整个查询等。安全有效。尽管有错误消息的文本,但很长时间以来都不建议启用autoReconnect=true。