Spring Global事务与本地事务

问题描述 投票:12回答:1

阅读Spring事务文档时,我发现它支持全局事务和本地事务。

  • 简单来说,什么是全局事务,什么是本地事务?
  • 一个优于另一个的优点是什么?它们的适当用途是什么?

如果我使用以下配置 - 它是否意味着它是本地事务?

<tx:annotation-driven transaction-manager="transManager" />

<bean id="transManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="emf" />
</bean>

我尝试在Google和Stackoverflow中搜索,但没有得到任何资源解释相同的简单术语。

java spring transactions spring-transactions distributed-transactions
1个回答
16
投票

实际上有很多资源可以回答你的前两个问题,例如Spring Documentation解释了本地和全球交易是什么,并描述了他们在9.2章动机中的不同之处。简而言之:

全局事务是一个应用程序服务器管理的事务,允许使用不同的事务资源(这可能是两个不同的数据库,数据库和消息队列等)

本地事务是特定于资源的事务(例如Oracle Transactions),而应用程序服务器与它们无关。 (同一章解释了他们每个人的优点和缺点,然后我可以解释得更好,所以我建议你仔细看看)

回答你以后的问题。 documentationJpaTransactionManager能够处理全球交易,所以通过查看提交的代码,很难说它是本地交易还是全球交易。相同的文档说明应该使用本地单一资源事务DataSourceTransactionManager

© www.soinside.com 2019 - 2024. All rights reserved.