Springboot2.x结合Mabatis3.x下Hikari连接数据库报超时错误
作者:Y.Zero
本文针对Springboot2.x与Mybatis3.x结合使用时,Hikari连接数据库出现超时错误的问题进行了深入分析,并提供了一系列有效的解决方法,感兴趣的可以了解一下
原来Springboot1.x的版本没有这个问题,升级到2.x之后,刚启动没有问题,数据库获取数据很正常,但是几分钟没有数据库操作后,定时任务连接数据库时会报超时。
HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@4615f6a1 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
按照提示将maxLifetime参数调短发现不起作用,
而且各个参数都调成60s,超时警告依然在30s的时候触发,应该是配置方式有问题。按照各种教程试下来都没有解决问题,对于springboot的数据库连接这块不熟,但推测问题还是在数据库连接线程程序端和数据库端不同步导致的。
最终用来一种很临时的方式解决了:
定时任务里面开一个30s执行一次的任务,在里面执行一次数据库操作,确实问题没有再出现了。
Task:
@Scheduled(cron = "0/30 * * * * ?") public void sqlConnectTest() { if(!accountInfoService.sqlTest()){ log.info("sql连接失败"); } }
Mybatis Mapper XML:
<select id="sqlTest" resultType="int"> select 1; </select>
对于这块不熟,只能临时应急,希望可以遇到解决方案。
到此这篇关于Springboot2.x结合Mabatis3.x下Hikari连接数据库报超时错误的文章就介绍到这了,更多相关Springboot Hikari连接数据库超时内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!