[seata]版本发布时是否可以标识支持的最高的数据库驱动版本

2024-02-02 987 views
2

目前服务端使用1.5.2,客户端使用1.4.1客户端mysql驱动在8.0.22运行正常,再往上就事务回滚过程中反序列化失败,造成无法回滚。

回答

4

贴一下日志

3

2023-07-23 22:09:48,600#[TID:不适用]#[rpcDispatch_RMROLE_1_32_32]#INFO ######isrm.datasource.DataSourceManager#[info]#-branch回滚失败。branchType:[AT],xid:[192.168.53.33:61111:18362258022334800],branchId:[9355058946528753],resourceId:[jdbc:mysql://192.168.2.106:3306/tower],applicationData:[null]。原因:[分支会话回滚失败,稍后重试 xid = 192.168.53.33:61111:18362258022334800branchId = 9355058946528753 无法创建类(缺少无参数构造函数):java.time.LocalDateTime 序列化跟踪:值(io.seata.rm) .datasource.sql.struct.Field)字段(io.seata.rm.datasource.sql.struct.Row)行(io.seata.rm.datasource.sql.struct.TableRecords)afterImage(io.seata.rm.datasource) .undo.SQLUndoLog) sqlUndoLogs (io.seata.rm.datasource.undo.BranchUndoLog)]

3

这个日志是用8.0.31打印的,切换到8.0.13没问题,22也没有问题。

3

使用得seata版本是多少?

8

这是一个已知问题,不同的 mysql-driver 版本在读取时间类型后映射不同的 Java 类型。早期版本使用Long类型,后期版本使用jdk8的LocalDateTime。