事务不提交,也有可能写redo和数据文件…
Oracle事务 一般事务(DML)即数据修改(增.删.改)的事务事务会将所有在事务中被修改的数据行加上锁(行级锁),来阻止其它人(会话)同时对这些数据的修改操作.当事务被提交或回滚后,这些数据才会被释放锁. 举个例子:当A操作一条数据N1后,暂未提交事务 ,此时B又上来操作同一条数据N1,这时的情况是:1.所有除A以外的人看不到被A所修改后的数据2.B会处于等待状态,直到A提交或回滚了针对这条数据的修改(这也就是行级锁的概念)3.当A提交事务后,所有人可以看到被A修改后的数据,看不到B修改后的…
参见:http://www.ixora.com.au/notes/redo_write_triggers.htm http://www.eygle.com/archives/2005/02/redoaeoeio.html There are four conditions that cause LGWR to perform a redo write. When LGWR is idle, it sleeps on an rdbms ipc message wait with a timeout…
今天同事遇到一个问题,一起研究,最后解决,让我对spring的事务管理又加深了印象. 先简单说一下项目:项目是Spring和Hibernate集成的JavaEE项目,MVC架构. 外包在service层一个以get开头的方法中写了一些业务逻辑,分别调用了dao层的save和get方法,但是发现get的数据正常显示,数据表中该save的并没有存入数据表,查hibernate生成的sql也只查到了get的语句,没有发现save的语句,也没有报任何错误.很奇怪的现象,不怕报错,就怕它不报错~ 遂检查了…
最近在做微信项目,我搭建了一个基于servlet,spring3.2,hibernate4.1的框架.因为基于消息的servlet和基于业务层是分开做的,也就是先把业务层做了,再去将所有的请求转到业务层处理.所以一开始开发就用junit做测试,模拟的消息保存数据库也都能正常进行.下面列出某一个junit 的 testcase,在这个测试的例子中,我为junit配置了事务,事务也能正常提交.所以,后面的业务层写法就一直这么开发下去,也没什么问题 package com.cpic.inf.tools…
本文源码:GitHub·点这里 || GitEE·点这里 一.场景案例简介 1.场景描述 分布式事务在业务系统中是十分常见的,最经典的场景就是电商架构中的交易业务,如图: 客户端通过请求订单服务,执行下单操作,实际上从订单服务上又触发了多个服务链请求,基本步骤如下: 客户端请求在订单服务上创建订单: 订单服务调用账户服务扣款: 订单服务调用库存服务执行库存扣减: 订单通过物流服务,转化为物流运单: 这套流程在电商系统中是基本业务,在实际的开发中远比这里描述的复杂. 2.服务时序图 上述1中是业务…
1.问题复现 spring 3.0 + hibernate 3.2 spring mvc使用注解方式:service使用@service注解 事务使用@Transactional 事务配置使用 <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /> <tx:annotation-driven transaction-man…
问题描述: 系统中多个功能不定期出现“Unable to get error message (6107) (0).”错误,即分布式事务超时,但报出错误的部分功能根本没有使用分布式事务. 原因分析: 推测是存在分布式事务未提交的情况,回到线程池后被复用造成的,例如: 系统中A功能存在分布式事务未提交的问题,处理A功能的线程执行完成后回到线程池,B功能复用了处理A功能的线程,A功能未提交的分布式事务将B功能的代码也包含进去了,依次类推可能还有C.D等功能,直到A功能开启的分布式事务超时报出6107…
遇到个奇怪的问题,同时开启本地和远程两个事务,远程事务是sql2000没问题,是sql2008的不报错,但是写不上数据. 倒腾了4.5天,找到最终的解决办法:直接调用AdoConnection.execute(sq脚本),看来AdoQuery调用AdoConnection的还是有兼容性问题. 代码如下: Function TDM_Base.PassMarkBill(AQuery:TAdoQuery; lTrans:Boolean=True;  sID:String=''; sMachineID:…
spring mvc使用注解方式:service使用@service注解 事务使用@Transactional 事务配置使用 <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /> 在插入或更新数据时,无报错,但数据库中无结果,而查询正常.疑为事务未提交. 方式用来扫描该包以及其子包下的@Controller注解的类,纳入spr…