这是场景,顺便说一句,我正在寻找以 Java 为中心的答案。
- 客户端代码从 Provider Application #1 调用 REST 服务 A (POST)。
- 客户端代码使用 JDBC 直接更新内部数据库。
- 客户端代码从 Provider Application #2 调用 REST 服务 B (POST)。
- 步骤 1 到 3 需要发生在具有两阶段提交支持的分布式事务中,即如果步骤 2 的数据库更新失败,那么我们要撤消步骤 1 的 POST。如果步骤 3 的 POST 失败,我们想要撤消步骤 1 的 POST 和步骤 2 的数据库更新。
有没有一种方法可以使用 JTA 完成此任务,而无需编写我们自己的补偿代码(撤消步骤 1 和 2)?