美文网首页
kettle作业连接mysql资源库8小时后报错

kettle作业连接mysql资源库8小时后报错

作者: 帅气小伙 | 来源:发表于2018-12-10 10:03 被阅读92次

kettle作业在运行一段时间后会报错,原因是mysql会默认每8小时回收一次无用连接。
错误日志如下:

Communications link failure with MySQL
he last packet successfully received from the server was 1,290,343 milliseconds ago. The last packet sent successfully to the server was 1,290,448 milliseconds ago.

然后你的作业就失败了,必须重新启动kettle才能解决。
经过多次排查,最终解决。

无效解决方案

jdbc:mysql://127.0.0.1:3306/kettle?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true

加上 autoReconnect=true 参数

外部解决方案

虽然能解决8小时mysql自动丢弃无用连接的问题,但是不能解决mysql宕机后的自动重连。

1.更改mysql的wait_timeout(默认8小时),改成更长的检测时间,比如1年(在墙内找到的大多数是这种方式)

修改方式,自行百度

2.将kettle的调度周期设置短(在国外的论坛讨论中发现)

例如wait_timeout是8小时,只需把调度周期设为<8小时即可

完美解决方案

在kettle5.4测试不通过,在kettle7测试通过。
配置数据源连接时,采用连接池,配置如下


连接池配置

关于连接池参数,kettle使用的是apache dbcp connetions pool.
修改方式,自行百度

相关文章

网友评论

      本文标题:kettle作业连接mysql资源库8小时后报错

      本文链接:https://www.haomeiwen.com/subject/bnzlhqtx.html