在同一台服务器上使用相同数据库的web服务之间的原子事务

4
我们的架构包括使用JAX-WS规范开发的Web服务,使用Metro部署在单个Glass Fish应用服务器上作为单独的war文件。所有Web服务内部使用单个数据库。数据访问层采用Hibernate实现,Spring用于实现服务内的事务。现在,当我们想要执行跨多个Web服务的事务时,有哪些方法可行?
1. 我们需要使用JTA吗?还是可以避免使用JTA? 2. 我们是否需要使用Metro支持的WS-AtomicTransaction规范?
1个回答

0

我自己回答这个问题,因为到目前为止还没有答案。不过,我会欣赏对此的观点。 我认为最好的架构是将每个网络服务视为独立的,并在网络服务之间使用WS-AtomicTransactions/WS-Coodrination进行事务处理。 当一些网络服务需要部署到不同的glassfish域或完全不同的服务器上以提高性能或其他原因时,这也会有所帮助。 在内部,这些JAX-WS Metro服务将使用glassfish上的JTA来实现2PC。然而,这在Metro实现中是隐藏的。

Vipul Shah


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接