简短的答案是应该足够了。DBCP支持对从连接池借用的连接进行测试(默认设置),但也支持对返回进行测试以及在空闲时进行测试。
还值得了解这里可能出了什么问题。听起来您的Tomcat服务器与数据库之间的某些内容在超时后(例如路由器或防火墙)正在断开空闲连接。这样做的问题在于,Tomcat认为它仍然具有有效的连接,试图对该连接进行一些工作并失败了,但仍保持该连接处于活动状态并将其返回到池中。现在,如果从池中获得相同的断开连接,则任何进一步尝试与数据库进行通信的尝试都将失败。
我认为这是Michael Nygard出色的“发布!” 这本书在他的战t故事中描述了这种情况。
您还将要研究MySQL如何清除死连接,因为当Tomcat在8小时后失去连接时,数据库也不会意识到失败的连接。
最后一点,如果您使用的是Tomcat
7,请切换到其新的连接池,因为它提供的性能优于DBCP。



