【发布时间】:2019-04-18 05:54:24
【问题描述】:
我读过this article(假设我已经知道什么是事务边界)和this SO question(无法从该问题中解读事务边界的含义)。换句话说,我发现没有明确的定义或尝试定义事务边界。我明白什么是 100% 的过渡,但从概念上讲,什么是事务边界?
【问题讨论】:
标签: java jakarta-ee transactions jta distributed-transactions
我读过this article(假设我已经知道什么是事务边界)和this SO question(无法从该问题中解读事务边界的含义)。换句话说,我发现没有明确的定义或尝试定义事务边界。我明白什么是 100% 的过渡,但从概念上讲,什么是事务边界?
【问题讨论】:
标签: java jakarta-ee transactions jta distributed-transactions
您可以阅读Spring Transaction boundaries参考:
例如,网关或服务激活器方法可以使用
@Transactional进行注释,或者TransactionInterceptor可以在 XML 配置中定义,其切入点表达式指向应该是事务性的特定方法。最重要的是,您可以在这些场景中完全控制事务配置和边界。另一个重要因素是消息流中事务的边界。 事务启动时,事务上下文绑定到当前线程。因此,无论您的消息流中有多少端点和通道,只要您确保流在同一线程上继续,您的事务上下文都将被保留。 一旦您通过引入 Pollable Channel 或 Executor Channel 或在某些服务中手动启动新线程来打破它,Transactional 边界也会被打破。
【讨论】:
这是事务开始或提交/回滚的地方。
以@Transactional 注释的方法例如定义了两个事务边界:当方法被调用时,事务开始,当它返回时,事务被提交/回滚。
【讨论】: