一次MySQL异常排查:Query execution was interrupted
异常日志:
查询被中断了,先是在Google上查,又是再百度上查,基本上都是说程序超时设置setQueryTimeout的问题,就是说查询时间超过了设置的最大查询时间,导致查询被中断。我也没办法断定是不是这个原因,就联系了DBA帮忙确定。
DBA查询结果如图:
反馈是闲置超时导致的,也就是链接超过设置的MySQL链接闲置超时时间(默认8小时)
解决方法,在数据库数据源的DBCP配置文件中,设置testWhileIdel等于true,且validationQuery不等于空(一般设置select 1)
参数作用:当检测到机器闲置时,通过validationQuery设置的SQL应用此链接执行,保证链接取消闲置状态
参考:http://blog.csdn.net/initphp/article/details/8255793