将SpringREST/SOAP服务注册到XA事务

将SpringREST/SOAP服务注册到XA事务,spring,xa,Spring,Xa,我想到了一个理论上对我来说是可能的场景,但我在网上找不到任何信息 技术环境是Java和Spring,但我对其他选择持开放态度 我有一个服务(ServiceA),它使用@Transactional包装DB事务。作为逻辑的一部分,它需要调用远程服务(为了举例,让我们假设REST,但SOAP或其他也可以应用)。这样的服务(ServiceB)使用@transactional本身也是事务性的 显然,可能存在一致性问题:例如,ServiceB可能提交,ServiceA可能在远程调用后失败,因此回滚。。。但是

我想到了一个理论上对我来说是可能的场景,但我在网上找不到任何信息

技术环境是Java和Spring,但我对其他选择持开放态度

我有一个服务(ServiceA),它使用@Transactional包装DB事务。作为逻辑的一部分,它需要调用远程服务(为了举例,让我们假设REST,但SOAP或其他也可以应用)。这样的服务(ServiceB)使用@transactional本身也是事务性的

显然,可能存在一致性问题:例如,ServiceB可能提交,ServiceA可能在远程调用后失败,因此回滚。。。但是ServiceB没有回滚。很明显

我来营救你。理论上。ServiceA可以启动XA分布式事务,ServiceB注册到同一XA分布式事务中,当ServiceA结束时,它可以对ServiceB(及其数据库)和自己的数据库进行两阶段提交

但是。。。我还没有找到这种设置的示例。我能找到的每个分布式XA事务示例都使用来自同一服务的两个数据库(通常是一个SQL JDBC数据库加一个JMS)

我是否有任何理论上的错误概念使得这一场景无法挽回?或者只是我在搜索谷歌时出错了?有这样的例子吗

谢谢


PS:我知道其他解决方案,如最终一致性,但这不是我要问的。

我正在为一个企业场景进行XA-POC,问题看起来类似:(1)公开rest api和soap ws的Springboot集成应用程序-使用camel进行某些编排(2)必须可在Websphere8.5.5.12(3)中部署3个GUI客户端使用公开的rest/soap api作为单个集成点。(4) 集成应用程序必须将下游集成到1个db、1个ejb soap ws、1个soap ws cobol(5)Xa提交保证。我会看看这是怎么回事。我正在考虑使用jboss Narayana XA,我希望它能与soap服务一起工作,并且在部署期间不会与Websphere-8.5.5.12冲突。我们会保持联络。