问题描述
||
我们的体系结构包括使用以下基于JAX-WS规范开发的Web服务:
地铁。这些服务作为单独的战争部署在单个Glass Fish App服务器上
文件。所有Web服务内部都使用单个数据库。数据访问层是使用Hibernate实现的,而Spring用于实现服务内部的事务。现在,当我们要进行跨多个Web服务的事务时,有什么可能的方法?
我们需要使用JTA还是可以避免使用JTA?
我们是否需要使用Metro支持的WS-AtomicTransaction规范?
解决方法
我正在回答自己的问题,因为到目前为止没有答案。然而,将赞赏在同一观点。
我觉得最好的架构是将每个Web服务都视为独立的,并使用WS-AtomicTransactions / WS-Coodrination进行跨Web服务的事务。
当出于性能或某些其他原因而需要将某些Web服务全部部署到不同的glassfish域或不同的服务器上时,这也将有所帮助。
在内部,这些JAX-WS Metro服务将在玻璃鱼上使用JTA来实现2PC。但是那是隐藏在Metro实施中的
维普尔·沙