# 太长不看版

在本地直接运行 build.sh 或 build.bat, 观察输出日志

---------------------------------------------


# 明细版
## 运行前准备
#### 基础环境
maven, jdk1.8+

#### 我自己有数据库
1, 准备两个数据库实例, 以便更好的理解分布式事务;

2, 支持的数据库类型和版本信息, 请查看 [阿里云GTS参考文档](https://help.aliyun.com/product/48444.html) 获取最新的数据库版本支持信息;

3, 而后分别在两个数据库A和B上, 运行脚本 init-a.sql 和 init-b.sql, 其中表user_money_a和表user_money_b将用于demo程序, txc_undo_log表为GTS框架专用;

4, 修改`biz/src/main/resources/application.properties`中的`my.datasource.a.` 和 `my.datasource.b.` 相关配置, 修改为数据库A和B的连接串/用户名/密码;

#### 我自己没有数据库

`biz/src/main/resources/application.properties` 中配置了两个阿里云RDS连接串, 可供运行此demo, 相关数据库表已经建好, 可以直接使用.

此数据库仅供测试, 其中数据可能会随时清理, 请勿使用此数据库保存个人数据.


#### 我是在本地运行demo

请勿修改 `biz/src/main/resources/application.properties` 中的 `spring.cloud.txc.txcServerGroup` 配置, 有且仅有此测试分组能通过公网访问云上的GTS server集群

本地需能联通公网

#### 我是在ECS上运行demo

请在GTS产品控制台, 创建一个自己的分组, 然后修改 `biz/src/main/resources/application.properties` 中的 `spring.cloud.txc.txcServerGroup` 配置项为自己创建的分组

注意创建的分组和运行demo的ECS应该在同一个region

## 运行

运行 build.sh

Windows下请运行 build.bat

可见在对位于不同数据库实例的表做操作的时候, 即使发生异常, 也能保证整个业务的数据一致性
