2 a779712764 a779712764 于 2016.05.06 13:04 提问

当事务进行到一半时web服务器挂了
@Transactional(propagation=Propagation.REQUIRED)
public void test(){
    financialDao.createObj(new Financial(null,40076L));
    financialDao.createObj(new Financial(null,40077L));
    financialDao.createObj(new Financial(null,40078L));
    financialDao.createObj(new Financial(null,40079L));
    financialDao.createObj(new Financial(null,40080L));
    try {
        Thread.sleep(20000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    financialDao.createObj(new Financial(null,40081L));
    financialDao.createObj(new Financial(null,40082L));
    financialDao.createObj(new Financial(null,40083L));
}

中间睡眠20秒是让我自己有时间关闭服务器,是用来模拟服务器挂掉的时候当前操作只进行了一部分,服务器挂了之后睡眠前的数据持久化到数据库了,睡眠后的数据没有持久化到数据库,我想不明白是什么原因,我觉得既然他方法都没执行完成,就应该没有进行事务的提交,睡眠前和睡眠后的操作都不应该持久化到数据库。请哪位高人来指点一下 说说这其中的一些情况,感激不尽。

2个回答

qq_24515921
qq_24515921   2016.05.06 13:25
已采纳

数据库在你关闭服务器的时候会自动检查内存中的脏数据的,然后将这些脏数据持久化到数据库的,而且你做了DML操作之后不需要等待commit才会提交到硬盘写入的

a779712764
a779712764 非常感谢
大约 2 年之前 回复
mazegong
mazegong   2016.05.06 15:33

数据库在你关闭服务器的时候会自动检查内存中的脏数据的,然后将这些脏数据持久化到数据库的,而且你做了DML操作之后不需要等待commit才会提交到硬盘写入的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
拿到新项目时,效率低下的原因
1  没有将需求细化,明确到具体的步骤 2 缺乏动手实践,导致方向不明确 3 没有记载下来每一步的操作步骤
某一正整数,进行递减,每次将该数减半后再减一,当对该数进行第10次减半时
//某一正整数,进行递减,每次将该数减半后再减一,当对该数进行第10次减半时 //发现该数只剩下1不能再减了,求该数。 #include using namespace std; int main() {     int a,b,c,d,e,f,g,h,l,i;     for(i=1;i     {         a=(i*2)+1;          b=(a*2)+1;
队,栈,UML9种试图
栈  栈的操作原则是:先进后出,后进先出 二、栈的特点 根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。 也就是说,栈是一种后进先出(Last In First Out)的线性表,简称为LIFO表。   三、栈的运算  1.初始化栈:INISTACK(&S) 将栈S置为一个空栈(不含任何元素)。
服务器挂了可能引发的问题
1、测试新上传的图片获取不到,返回的图片名称也是null -----图片服务器挂了 2、测试新建模板的时候失败----服务器没有启动相关服务 3、测试新建活动失败 ---redis 缓存的问题
服务器挂掉原因
今天服务器莫名其妙没有反应,但是nginx和memcached都在运行, 当我查看服务器内存使用情况时,发现内存使用率达到了90%多。 明显知道是内存占用太大导致服务器没有响应了。 而后内存又恢复到40%多,服务器也恢复正常了
服务器经常挂掉的6个原因
如果没有任何经验,学习如何扩展一个网站是相当困难的。假设现在你有很多像highscalability.com那样网站,你需要一些好的解决方案来扩展它们,但是世上没有“万能药”,没有哪个解决方案可以适应所有网站的需要。你不得不自己动手,通过不断地思考来找到一个能满足你的需求的解决方案。我也是这样做的。 几年以前,我的老板来找我,然后对我说:“我们有一个新项目想交给你来做。主要是一个网站的重构,
当水军刚好是一半时的问题
见转载帖子的回复部分: http://blog.csdn.net/v_july_v/article/details/6890054 #include #include using namespace std; int find( int *a, int n ) { int candidate; int ntimes, i; for( i = ntimes = 0; i
Nginx负载均衡与个别服务器宕机后的切换及相关平衡配置
Nginx 目前很火,前很火、很火、火,做为高性能的反向代理服务器目前技术也是比较成熟的,对于缓解服务器压力,能够支持高达 50,000 个并发连接数的响应,而且有非诚优秀的移植性,Nginx是有自己的函数库的,除了zlib、PCRE和OpenSSL之外标准模块只使用系统C库函数。下面来简单贴出配置文件+说明:   1. 在http节点下,添加upstream节点。 ups
利用 Nginx 负载均衡实现 Web 服务器更新不影响访问
还记得那些美妙的夜晚吗 你洗洗打算看一个小电影就睡了,这个时候突然想起来今天晚上是服务器更新的日子,你要在凌晨时分去把最新的代码更新到服务器,以保证明天大家一觉醒来打开网站,发现昨天的 Bug 都不见了。这时候你瞬间没有了看电影的兴致了,这应该就是一个运维人员的日常了吧! 为什么要在凌晨时分去更新服务器? 做过 Web 开发的应该都明白,可能尽管你开发的系统并没有多少用户在使用,但是
Redis主从结构,主库宕机挂了,怎么办
前提:现在有主从结构,主库没有配置持久化,从库配置AOF。(主库用来备份和写服务,从库用来提供读服务) 场景:哪一天主库突然宕了,怎么办? 非常危险的动作:重新启动主库。 要知道这样一来,最坏情况数据将全部丢失。因为主库没有配置持久化,所以主库的data目录只有从库连接主库请求resync的时候做快照留下来的dump.rdb文件。如果重启主库,主库会按照data目录下的dump.rd