Spring Rest Service Transasctional行为

时间:2017-03-10 15:10:53

标签: java spring spring-transactions jta

我们已经开发了Spring REST应用程序..我们正在为我们的业务消费第三方服务......就像CRUD服务......但我们的跟踪目的无论我们做什么交易,我们都会在数据库中记录这些转换。

所以现在的情况是,如果我们通过第三方API从REST服务更新一些信息(创建,更新,删除),并且在我们在数据库中记录该事务之后,如果数据库关闭,我们需要回滚交易。现在可能无法回滚通过第三方服务进行的交易。

我们的目标是,如果我们的数据库关闭,我们不会使用第三个pary api进行任何REST服务。  我不需要代码。我只需要一些想法或任何设计特定的想法。

1 个答案:

答案 0 :(得分:0)

如果目的只是为了确保在进行第三方呼叫之前数据库处于“up”状态,则可以在进行第三方呼叫之前进行连接检查。例如。你可以简单地执行像select 1 from dual这样的轻量级sql;如果成功,请继续拨打第三方电话;然后将它们记录在数据库中。

注意:确保在进入网络之前关闭您打开以执行连接检查的事务,同样在完成网络调用后完成登录数据库。在第三方呼叫期间,数据库会话不应保持活动状态。