-
下载seata https://github.com/seata/seata/releases
配置:file.config 分为本地模式file,数据库模式db
-
初始化表 https://github.com/seata/seata/edit/1.4.0/script/server/db/mysql.sql
连接的应该是这个库 globalTable,branchTable, lockTable 这是Seata server用来保存全局事务,分支事务,事务锁定状态的表 seata用这三个表记录分布式事务执行状态,控制最终一致性
undo_log 记录了全局事务和分支事务的ID信息,回滚内容和执行状态等 undo_log并不是创建在seata server的schema下,而是要创建在微服务项目自己的数据库之下
异常现象:
PhaseTwo_RollbackFailed_Retryable
好像在一直重试回滚
已经有个在重试回滚,再提交请求时:
JDBC commit failed; nested exception is io.seata.rm.datasource.exec.LockConflictException: get global lock fail, xid:10.96.9.237:8091:4738033714683482832, lockKeys:psog_store:1
https://blog.csdn.net/m0_37834471/article/details/105039673
https://blog.csdn.net/weixin_33843409/article/details/89534692
下面这个用户将对应数据entity的时间取消LocalDateTime的使用,并且数据库也使用timestamp来存放时间即可
Caused by: com.esotericsoftware.kryo.KryoException: Class cannot be created (missing no-arg constructor): java.time.LocalDateTime
这个表中只要有数据并且没有回滚成功,则会一直进行回滚尝试。(如果没限制回滚次数的话)
注册到nacos成功
22:08:46.803 [timeoutChecker_1_1] INFO i.s.c.r.n.NettyPoolableFactory - [makeObject,81] - register success, cost 36 ms, version:1.4.2,role:TMROLE,channel:[id: 0xa19aaa63, L:/ip:62766 - R:/ip:8091]
比较全的seata配置:
https://www.icode9.com/content-4-964641.html
比较全的seata问题集:
https://www.cnblogs.com/mediocreWorld/p/15635168.html
我提的issue:
https://github.com/seata/seata/issues/4524 (130不支持Future异步方法事务管理)
undo_log数据库连接必须在同项目的数据库下,可分不同的group,但是对应的需同数据库