看了 解惑 spring 嵌套事务
http://www.iteye.com/topic/35907?page=1真是受益匪浅啊。不过再测试的时候发现个问题:
ServiceA {
/**
* 事务属性配置为 PROPAGATION_REQUIRED
*/
void methodA() {
ServiceB.methodB();
methodC();
}
/**
* 事务属性配置为 PROPAGATION_NEW
*/
void methodC() {
}
}
ServiceB {
/**
* 事务属性配置为 PROPAGATION_NEW
*/
void methodB() {
}
}
引用
PROPAGATION_REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS -- 支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY -- 支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW -- 新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED -- 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER -- 以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED -- 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。
前六个策略类似于EJB CMT,第七个(PROPAGATION_NESTED)是Spring所提供的一个特殊变量。
它要求事务管理器或者使用JDBC 3.0 Savepoint API提供嵌套事务行为(如Spring的DataSourceTransactionManager)
在执行ServiceA.methodA()的时候执行到ServiceB.methodB() 就会挂起当前事务,新建一事务。但是执行到methodC()的时候通过spring的日志我发现methodC只是使用了当前的事务,而并未新建一个事务。对于这个问题感觉比较疑惑,不知道spring的官方文档上有没有提到。我测试的spring的版本是2.03,2.07,2.52。
分享到:
相关推荐
Spring事务类型详解: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_...
通过代码解析spring传播特性,包括 1、Propagation.REQUIRED 方法被调用时自动开启事务,在事务范围内使用... 如果没有活动事务, 则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行。需要JDBC3.0以上支持。
loopy belief propagation 算法
Affinity_Propagation_(AP)_AP聚类聚类算法介绍
Cap01_Introduction to Wireless Propagation_信道建模_matlab_源码.rar.rar
Cap01_Introduction to Wireless Propagation_信道建模_matlab_源码.zip
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播 PROPAGATION_REQUIRED PROPAGATION_SUPPORTS PROPAGATION_MANDATORY PROPAGATION_...
propagation script for lasers
wave propagation_大气通信_大气湍流仿真_光通信仿真_大气湍流_大气湍流多步仿真程序.zip
wave propagation_大气通信_大气湍流仿真_光通信仿真_大气湍流_大气湍流多步仿真程序_源码.zip
simple back propagation
模拟真空中Gauss光束的三维场分布,方便加深高斯光束性质的理解
关于信道测量和天线方面的一本书,很经典。
激光光束在介质中传播的分析及仿真,可仿真光束传输特性,程序运行结果较为直观,
Fundamentals of Antennas and Wave propagation Solutions for solving problems in standard textbooks.
Back Propagation Neuual Networks
Error Back-Propagation Algorithm for MLP Neural Networks
simulation of Wireless Propagation
Script that solves and plot pulse propagation thru Split step Fourier method agrawal book
BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。