在是用BoneCP的时候,由于MySQL的wait_timeout配置是8小时,当8小时候,BoneCP连接池中的空闲连接会被MySQL服务器清除掉,当时以为是没有配置BoneCP的idleMaxAge和idleConnectionTestPeriod参数导致的,但是应该有默认值啊,idleConnectionTestPeriod的默认值是240分钟(即4个小时),那么每4个小时向MySQL发送一个测试SQL,应该不会被MySQL认为是空闲连接啊,那么应该是测试发送没有进行了,为了证明这点,测试如下:
把MySQL的wait_timeout改为5分钟,BoneCP的idleMaxAge设为4分钟,idleConnectionTestPeriod设为3分钟,结果到了5分钟后查看mysql的连接情况,发现一个连接也没有了,这是为什么呢?研究一天了,兄弟姐们,救救我!