学习spring分布式事务的时候,自己整了个demo,写test测试的时候发先事物没有回滚.此问题和分布式事务没关系.1.在service层引入@Transaction注解 使用 throw new RuntimeException("cao zuo shi bai !!!"); 或者 throw e; 时数据正常回滚直接抛出一个新的异常时,数据正常插入到db中.后来db调试时比较两者的区别,正如测试结果一样. 在判断的时候直接进了else方法. 查证资料后得知,Spring的AOP事…
(1) set ANSI_NULLS ON --见图1 set QUOTED_IDENTIFIER ON go ALTER proc [dbo].[procname] as begin begin transaction DECLARE @myerror INT delete from tbname SET @myerror=@myerror+@@ERROR SET @myerror=@myerror+@@ERROR begin rollback transaction end else beg…
SET XACT_ABORT on BEGIN TRAN INSERT INTO [PDA_Action] VALUES ('採购入库1') INSERT INTO [PDA_Action] VALUES ('採购入库2') SELECT 1/0 /* 除数为0错误 */ INSERT INTO [PDA_Action] VALUES ('採购入库3') INSERT INTO [PDA_Action] VALUES ('採购入库4') COMMIT TRAN 对于有select…
spring AOP 默认对RuntimeException()异常或是其子类进行事务回滚,也就是说 事务回滚:throw new RuntimeException("xxxxxxxxxxxx"); 事物不回滚:throw new Exception("xxxxxxxxxxxx"); 那么,如何在抛出Exception或者自定义异常时,事务也进行回滚呢?有以下几种方案: 1.在捕获到异常或者显示的抛出 RuntimeException 2.手动回滚----在捕获到异…
转:http://hi.baidu.com/iduany/item/20f8f8ed24e1dec5bbf37df7 Spring AOP声明式事务异常回滚 近日测试用例,发现这样一个现象:在业务代码中,有如下两种情况,比如:throw new RuntimeException("xxxxxxxxxxxx"); 事物回滚throw new Exception("xxxxxxxxxxxx"); 事物没有回滚 自以为很了解事物,或许时间久远的缘故,没分析出来何故,遂查阅…
近日测试用例,发现这样一个现象:在业务代码中,有如下两种情况,比如:throw new RuntimeException("xxxxxxxxxxxx"); 事物回滚throw new Exception("xxxxxxxxxxxx"); 事物没有回滚 自以为很了解事物,或许时间久远的缘故,没分析出来何故,遂查阅了下资料,写下了如下的内容,供参考: 1).Spring的AOP即声明式事务管理默认是针对unchecked exception回滚.也就是默认对Runtim…
转自https://www.cnblogs.com/delphinet/archive/2010/08/17/1801424.html 第一种: declare @iErrorCount int set @iErrorCount = 0 begin tran Tran1 insert into t1(Id, c1) values(1,'1') set @iErrorCount=@iErrorCount+@@error insert into t1(Id, c1)…