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

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测试通过。

配置数据源连接时,采用连接池,配置如下

63b78ce2973e

连接池配置

关于连接池参数,kettle使用的是apache dbcp connetions pool.

修改方式,自行百度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值