Java 弹簧休息服务跨国家行为
我们已经开发了spring REST应用程序。。我们正在为我们的业务使用第三方服务…像CRUD服务…但我们的跟踪目的无论我们做什么交易,我们都会将这些交易记录在数据库中 所以现在的场景是,如果我们通过第三方api从REST服务更新一些信息(创建、更新、删除),在我们将该事务记录到数据库中之后,如果数据库关闭,我们需要回滚该事务。现在可能无法回滚通过第三方服务进行的事务 我们的目标是,如果我们的数据库出现故障,我们将不会对任何REST服务使用第三方api。Java 弹簧休息服务跨国家行为,java,spring,spring-transactions,jta,Java,Spring,Spring Transactions,Jta,我们已经开发了spring REST应用程序。。我们正在为我们的业务使用第三方服务…像CRUD服务…但我们的跟踪目的无论我们做什么交易,我们都会将这些交易记录在数据库中 所以现在的场景是,如果我们通过第三方api从REST服务更新一些信息(创建、更新、删除),在我们将该事务记录到数据库中之后,如果数据库关闭,我们需要回滚该事务。现在可能无法回滚通过第三方服务进行的事务 我们的目标是,如果我们的数据库出现故障,我们将不会对任何REST服务使用第三方api。 我不需要代码。我只需要一些想法或任何特定
我不需要代码。我只需要一些想法或任何特定于设计的想法。如果目的只是为了在进行第三方呼叫之前确保数据库处于“启动”状态,您可以在进行第三方呼叫之前进行连接检查。例如,您可以简单地执行一个轻sql,如
select1fromtoual
;如果成功的话,继续打第三方电话;然后将它们记录到数据库中
注意:确保您为进行连接检查而打开的事务在进入网络之前已关闭,同样,登录数据库也在您完成网络呼叫之后完成。在第三方呼叫期间,数据库会话不应保持活动状态。在呼叫任何服务之前,您不能先检查数据库是否已关闭吗?