Results 181 comments of Willem Jiang

Just like the calling commit method with JDBC, it could be failed,we can do some other recovery work later. My suggestion is we check the balance or even withdraw some...

Current , we just do some coordinations between different sub transactions by leveraging the framework that Pack provides. TCC and Saga just provide two different ways for us to do...

对了,你的数据表是怎么创建的, Alpha是会自动帮助建表的。使用创建SQL是不会创建临时表的。

这个问题应该是提到JavaChassis里面, 我建了一个新的问题。 https://github.com/apache/servicecomb-java-chassis/issues/1317

如何只想看demo文件,建议直接从发行版中打开,这样maven会自动帮你加载相关的pom文件。 如果是基于master分支来说的,需要在根目录下执行mvn install。

你的问题场景能具体描述一下吗?如果是分布式事务参与者服务实例退出,Omega是需要在Alpha注销的。目前Alpha在调用Omega的补偿方法是通过CompositeOmegaCallback中的[compensate方法](https://github.com/apache/servicecomb-pack/blob/master/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java#L41), 现在的实现还是绑定了具体的实例, 针对你的问题是可以进行相关的扩展加载不同实例的选择。

多个Omega的支持可以通过查询注册的客户端来实现,如果是多个Alpha的情况下处理比较复杂,这块我们还没有实现, @tnessn @Richhardbranson 有兴趣做一下吗?我会给出相关的指导的。 另外建议使用[Saga 状态机模式](https://github.com/apache/servicecomb-pack/blob/master/docs/fsm/fsm_manual_zh.md) ,有关数据接口的实现我们不打算提供支持了。 状态机模式下,[ 查询事件的API ](https://github.com/apache/servicecomb-pack/blob/master/docs/fsm/apis_zh.md)

> 现在补偿采用的方式是grpc回调,目前应该是不支持对多omega实例。@WillemJiang,是这样的吗? 单个Alpha 多个Omega很容易实现,只需要修改我之前提到的[那块代码](https://github.com/apache/servicecomb-pack/blob/master/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java#L41)就可以了。

自动化补偿这块在Alpha端是调用compensate方法。如果能够恢复成功的,就自动恢复了,如果恢复不成功,还是需要人为参与的。 @Richhardbranson 不知道你提到的扩展定义是什么?能详细说明一下吗?

了解了, @lastboy1228 这块主要shutdown实例的过程中,需要Omega做一些额外处理, 你有兴趣提供补丁吗?