jfinal与其他mvc框架整合后数据库操作会超时卡顿的问题

之前有个老项目是用struts2框架做的,最近要加一个新功能,由于之前整合的框架开发起来实在是太繁琐太低效,所以决定把jfinal整合进来,新功能用jfinal开发。之前老框架中已经使用了c3p0的连接池,jfinal使用的是druid连接池。

整合成功后发现一个很奇怪的问题,如果长时间没有使用jfinal自身的数据库操作功能,等再次调用的时候就会卡好一会,只要这次执行结束了,如果后面还有连续的数据库操作,就会很流畅。

我现在的解决方案是,加了一个调度,每隔一分钟定时执行一个简单的数据库查询,使其能一直“在线”。别说,这种方法还真的挺有效。

但是为什么会有这种问题呢?

评论区

JFinal

2018-12-19 15:08

很可能是 mysql 的 8 小时问题,超过 8 个小时不请求 mysql,它会主动断开连接,造成你下次请求时要临时再建连接,这个过程很慢

druid 中应该有个配置保持连接,可能是你改动了所以没生效

happyboy

2018-12-19 15:46

@JFinal 加了一个这个ds1.setValidationQuery("select 1 ");还有就是,没有8小时这么长,半个小时不操作就会出现这种问题。

JFinal

2018-12-19 16:13

@happyboy 在获取数据库连接的代码处添加日志,看获取的时长是多少,先定位问题,目前还都只是猜测