incubator-seata
incubator-seata copied to clipboard
:fire: Seata is an easy-to-use, high-performance, open source distributed transaction solution.
- [x] I have registered the PR [changes](../changes). ### Ⅰ. Describe what this PR did Seata saga current is strong dependency on spring. such as: 1. code was dependency spring...
序列化问题
ERROR i.s.r.d.u.p.JacksonUndoLogParser - [encode,154] - json encode exception, Type id handling not implemented for type java.lang.Object (by serializer of type com.fasterxml.jackson.databind.ser.impl.UnsupportedTypeSerializer) (through reference chain: io.seata.rm.datasource.undo.BranchUndoLog["sqlUndoLogs"]->java.util.ArrayList[0]->io.seata.rm.datasource.undo.SQLUndoLog["afterImage"]->io.seata.rm.datasource.sql.struct.TableRecords["rows"]->java.util.ArrayList[0]->io.seata.rm.datasource.sql.struct.Row["fields"]->java.util.ArrayList[2]->io.seata.rm.datasource.sql.struct.Field["value"]) com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Type id handling not...
## Why you need it? The seata tcc module and the saga module each define jsonParser, and the default parsers are inconsistent. One is jackson and the other is fastjson....
- [ ] I have registered the PR [changes](../changes). ### Ⅰ. Describe what this PR did 增加集群间元数据同步能力 1.leader选举成功后,生成只包含它自身的元数据,该元数据为一个单例,并同步至follower 2.follower收到这个元数据后,发送自身的元数据至server侧,进行补充follower的元数据 3.leader收到后,在元数据的follower中增加该节点,并推送元数据变更至client和其它tc节点 并且元数据中增加version字段,用于后续比如存在新旧多版本server,leader可以在同步的时候使用所有节点都能支持的协议,以便向下兼容。 Increase the ability of inter-cluster metadata synchronization 1. After...
- [ ] I have searched the [issues](https://github.com/seata/seata/issues) of this repository and believe that this is not a duplicate. ### Ⅰ. Issue Description 1.8.0版本XA模式如何支持达梦数据库,以及其它支持XA的数据库 ### Ⅱ. Describe what happened If...
## Why you need it? The current github action cannot detect useless fields, such as the `io.seata.server.ParameterParser#CONFIG` field in version 2.0.0. We need to optimize to avoid useless fields. 当前的github...
当参与者使用tcc注解@TwoPhaseBusinessAction时,同时添加@GlobalTransactional,比如在使用嵌套事务的场景下,目前2.x从1.x改造完tcc去spring后,无法同时添加两个注解切面。 1. 本pr修复了该问题,修复方案为遍历所有的InterfaceParser全部做解析,解析完成拿到ProxyInvocationHandler后,根据指定排序组织成一个代理链,执行调用时,按序进入多个切面。 2. 修复后支持添加多种类型的注解,比如@GlobalTransactional和@TwoPhaseBusinessAction为两类,可以同时添加。@TwoPhaseBusinessAction和saga注解化@CompensationBusinessAction是同一类,只允许添加一种,重复添加时启动阶段报错。 3. 切面进入顺序,@TwoPhaseBusinessAction优先@GlobalTransactional。
按照教程设置 seata 模块后, 系统模块我发启动, 报错如下 17:33:38.716 [main] ERROR o.s.b.SpringApplication - [reportFailure,843] - Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'globalTransactionScanner' defined in class path resource [io/seata/spring/boot/autoconfigure/SeataAutoConfiguration.class]: Bean instantiation...
- [ ] I have registered the PR [changes](../changes). ### Ⅰ. Describe what this PR did 集成rocketmq到seata。 #### 关于总体解决思路: 本次集成的能力重点在全局事务的一阶段,我们会提供一个SeataMQProducer,在里面将以下两个方法自动加入到全局事务中。其他方法会调用到原生父类进行,不会加入到全局事务。 #### 关于具体实现方案及时序: 程序流程: 1. rocketmq按发送半消息(和rocketmq原有逻辑一样) 2. 执行本地事务executeLocalTransaction/executeLocalTransactionBranch(和rocketmq原有逻辑一样) 3. 如果state=成功,强行改回unknown,等待seata-TC调用rm决定二阶段。否则都将直接rollback这个消息(因为seata目前无法支持rm一阶段回查能力) ####...
- [x] I have registered the PR [changes](../changes). ### Ⅰ. Describe what this PR did ### Ⅱ. Does this pull request fix one issue? fixes #6344 ### Ⅲ. Why don't...