【问题标题】:Spring Rest Service Transasctional behaviourSpring Rest Service 事务行为
【发布时间】:2017-03-10 15:10:53
【问题描述】:

我们已经开发了 spring REST 应用程序..我们正在为我们的业务使用第三方服务..比如 CRUD 服务...但是我们的跟踪目的是无论我们做什么交易,我们都会将这些交易记录在数据库中。

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

我们的目标是,如果我们的数据库出现故障,我们不会将第三方 api 用于任何 REST 服务。 我不需要代码。我只需要一些想法或任何设计特定的想法。

【问题讨论】:

  • 您不能在调用任何服务之前先检查您的数据库是否已关闭吗?

标签: java spring spring-transactions jta


【解决方案1】:

如果只是为了确保在进行第三方调用之前数据库已“启动”,您可以在进行第三方调用之前进行连接检查。例如。你可以简单地执行一个轻量级的sql,比如select 1 from dual;如果成功,请继续拨打第 3 方电话;然后将它们记录到数据库中。

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

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2018-10-25
    • 2016-06-05
    • 1970-01-01
    • 2017-07-27
    • 2018-08-09
    • 1970-01-01
    • 2015-05-03
    相关资源
    最近更新 更多