记录一个Flowable无法启动的奇怪问题

在启动Flowable时遇到'Waiting for changelog lock....'错误。解决方案包括修改databasechangeloglock表的locked字段为0,或者检查数据库中locked字段的数据类型。在MySQL+Mybatis-Plus环境中,bit类型数据可能未正确转换为Boolean,可通过在数据库连接URL设置transformedBitIsBoolean=true来解决此类问题。

启动flowable的时候遇到了这个问题:Waiting for changelog lock....

  1. 第一种方式:全网搜索,包括stack overflow,结果都是修改databasechangeloglock表的locked字段为0

  1. 第二种方式:如果没有databasechangeloglock表就把所有带lock关键字的表都打开把locked改为0

但是到我这里明明locked都为0为什么还是不生效呢?

在我检查databasechangeloglock表属性的时候发现问题可能出在locked这个字段的数据类型上,我的数据库是mysql中间件用的mybatis-plus。

以前遇到过一起类似的案例,bit数据类型被读取到java里以后没有默认转换成Boolean类型,就是说0 != false。一般这种问题都是数据库连接的url上设置一下就可以了:

transformedBitIsBoolean=true

加上一些其他属性,具体可以参考相关文档,以下是完整连接
url: jdbc:mysql://[数据库ip地址]:[端口号]/[数据库]?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
但是,我的url设置很完整,所以我的问题没有得到解决,到这里变的一筹莫展,只好先放下不管了。大概过了两天,我在调试数据库读写分离的时候看到了mycat的配置。也就是说我的所有url都被mycat代理了,原先的url设置已经不生效了。
修改如下

完整url如下,注意【&】符号用【&】替换了,数据库也不在url中填写而是写到user属性中:
jdbc:mysql://[ip地址]:[端口号]?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true

更新,原先的bit数据类型也会造成读取问题,所以我在数据库里把数据类型改成了tinyint(1)

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值