gpt4 book ai didi

spring - 暂停交易是什么意思?

转载 作者:行者123 更新时间:2023-12-04 08:23:21 24 4
gpt4 key购买 nike

如果我们使用 Propagation Requires_new 那么它会暂停现有事务并创建一个新事务。那么 suspends a transaction 是什么意思? ?暂停的交易会发生什么?幕后究竟发生了什么?
更新
被挂起的事务持有的资源会发生什么?

最佳答案

First of all the question here is a duplication of the thread: How does transaction suspension work in Spring?. However, I will try to answer this in a different way.



要了解 Spring @Transaction API 的工作原理,我们必须查看 transaction propagation mechanism 内部。 .

Spring 托管事务根据配置具有物理和逻辑事务。 enter image description here

PROPAGATION_REQUIRES_NEW uses a completely independent transaction for each affected transaction scope. The underlying physical transactions are different and hence can commit or roll back independently. Here the outer transaction is not affected by an inner transaction’s rollback status.



当一个 transactionsuspended ,它会一直等到它可以从中断的地方继续。这意味着, transaction 发生的变化是 suspended不属于同一 atomic unit .换句话说, transaction 期间发生的事情是 suspended不会是 rolled back如果 suspended transaction (复活后) fails to commit .

Spring 事务不暴露任何 API供开发人员直接控制,而不是事务配置。但是,如果您使用 JTA 来管理事务,那么您可以调用 suspendresume方法如下:
Transaction tobj = TransactionManager.suspend();
..
TransactionManager.resume(tobj);

我希望这可以帮助你!

关于spring - 暂停交易是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33729810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com