【问题标题】:How does transaction suspension work in MySQL?事务暂停在 MySQL 中是如何工作的?
【发布时间】:2010-12-20 07:14:31
【问题描述】:

在 Spring Framework 手册中,他们声明对于 PROPAGATION_REQUIRES_NEW,当前事务将被暂停。

什么是“暂停交易”? 超时计时器停止计数当前事务? 这种暂停的实际含义是什么?

谢谢,

阿萨夫

【问题讨论】:

    标签: mysql transactions suspend


    【解决方案1】:

    没有什么特别的意思,一个挂起的事务只是一个暂时不使用用于插入、更新、提交或回滚的事务,因为由于指定的原因应该创建一个新的事务传播属性,同时只能激活一个事务。

    基本上有两种交易模型:嵌套和扁平模型。在嵌套模型中,如果您启动一个事务,并且需要另一个事务,则第一个事务保持活动状态,即第二个事务将嵌套在其父级中,依此类推。另一方面,在平面模型中,第一个事务将被暂停,也就是说,我们不会使用它,直到新的事务完成。

    AFAIK 几乎只使用平面模型(包括 Spring 和 EJB 规范),因为它更容易实现:在任何给定时间只有一个活动事务,所以很容易决定在回滚的情况下要做什么,例如,由于异常。更重要的是,如果您需要嵌套模型,底层数据库必须支持它,因此平面模型在这种情况下只是共同点

    【讨论】:

      猜你喜欢
      • 2013-10-31
      • 2017-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      相关资源
      最近更新 更多