什么是交易边界?

时间:2018-11-15 07:16:44

标签: java java-ee transactions jta distributed-transactions

我已经读过this article(假设我已经知道什么是交易边界)和this SO question(无法从该问题中理解交易边界的含义)。换句话说,我没有发现明确的定义或对事务边界的定义的尝试。我了解100%是一种​​过渡,但是概念上什么是交易边界

2 个答案:

答案 0 :(得分:3)

这是事务开始或被提交/回滚的地方。

例如,用@Transactional注释的方法定义了两个事务边界:调用该方法时,一个事务开始,而返回时,该事务被提交/回滚。

答案 1 :(得分:1)

您可以阅读Spring Transaction boundaries参考:

  

例如,可以使用@Transactional注释网关或服务激活器方法,或者可以在XML配置中使用切入点表达式定义TransactionInterceptor,该切入点表达式指向应为事务性的特定方法。最重要的是,您可以完全控制这些情况下的事务配置和边界。

     

另一个重要因素是消息流中事务的边界。 启动事务时,事务上下文将绑定到当前线程。因此,无论您在消息流中有多少个端点和通道,只要您确保该流在同一线程上继续运行,就将保留事务上下文。 一旦通过引入可轮询的通道或执行器通道来中断它,或者在某些服务中手动启动新线程,事务边界也会被破坏