什么暂停交易意味着什么?

时间:2015-11-16 06:48:25

标签: spring transactions

如果我们使用Propagation Requires_new,则它会暂停现有事务并创建新事务。那对suspends a transaction来说意味着什么呢?挂起的交易会发生什么?场景背后到底发生了什么?

更新

暂停交易持有的资源会发生什么?

1 个答案:

答案 0 :(得分:4)

  

首先,这里的问题是线程的重复:How does transaction suspension work in Spring?。不过,我会试试   以不同的方式回答这个问题。

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

Spring托管事务具有物理和逻辑事务,具体取决于配置。enter image description here

  

PROPAGATION_REQUIRES_NEW使用完全独立的交易   对于每个受影响的事务范围潜在的物理   事务是不同的,因此可以提交或回滚   independently。这里outer transaction不受影响   inner transaction的回滚状态。

transactionsuspended时,它等待它可以从中断的地方继续。这意味着,transactionsuspended时发生的更改不属于同一atomic unit。换句话说,如果transaction(在它恢复生命之后)suspended rolled back suspended transaction期间发生的事情将不会是fails to commit API

除了事务配置之外,Spring事务不会公开任何suspend开发人员直接控制它。但是,如果您使用JTA管理交易,则可以调用resumeTransaction tobj = TransactionManager.suspend(); .. TransactionManager.resume(tobj); 方法,如下所示:

<a id="comprar" title="Comprar" class="btn-pdp-bag" href="#"> send Gtm </a>

我希望这可以帮到你!