事务暂停如何在MySQL中运行?

时间:2009-11-25 13:51:28

标签: mysql transactions suspend

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

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

谢谢,

阿萨夫

1 个答案:

答案 0 :(得分:4)

这并不意味着什么特别,暂停的事务只是暂时不使用的事务,用于插入,更新,提交或回滚,因为应该创建一个新的事务由于指定传播属性,并且只能同时激活一个事务。

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

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