CastleActiveRecord 经过测试,隔离级别:

// 摘要:

    //     指定连接的事务锁定行为。
    public enum IsolationLevel
    {
        // 摘要: 
        //     正在使用与指定隔离级别不同的隔离级别,但是无法确定该级别。
        Unspecified = -,
        //
        // 摘要: 
        //     无法覆盖隔离级别更高的事务中的挂起的更改。
        Chaos = ,
        //
        // 摘要: 
        //     可以进行脏读,意思是说,不发布共享锁,也不接受独占锁。
        ReadUncommitted = ,
        //
        // 摘要: 
        //     在正在读取数据时保持共享锁,以避免脏读,但是在事务结束之前可以更改数据,从而导致不可重复的读取或幻像数据。
        ReadCommitted = ,
        //
        // 摘要: 
        //     在查询中使用的所有数据上放置锁,以防止其他用户更新这些数据。防止不可重复的读取,但是仍可以有幻像行。
        RepeatableRead = ,
        //
        // 摘要: 
        //     在 System.Data.DataSet 上放置范围锁,以防止在事务完成之前由其他用户更新行或向数据集中插入行。
        Serializable = ,
        //
        // 摘要: 
        //     通过在一个应用程序正在修改数据时存储另一个应用程序可以读取的相同数据版本来减少阻止。表示您无法从一个事务中看到在其他事务中进行的更改,即便重新查询也是如此。
        Snapshot = ,
    }

Chaos是不支持的,Snapshot 必须修改数据库支持。

在多线程提交时,在提交时务时,主动将线程 挂起 300ms后再继续提交,配合 ReadCommitted模式

可以完成提交,但心中总是没有底。

其它模式 无论如何都无法得到正确的结果,ReadUncommitted 模式得到的结果是 错误的数据,因为事务过程得到的是脏数据。

CastleActiveRecord在多线程 事务提交时数据库资源竞争导致更新失败的测试结果记录的更多相关文章

  1. 关于java多线程任务执行时共享资源加锁的方式思考

    1.加锁方式: 1-1.使用synchronized关键字进行方法或代码块的加锁方式 1-2.使用ReentrantLock类提供的lock()方法的方式 2.代码实现(传统的银行取款存款问题): 2 ...

  2. 解决 MVC4 Code First 数据迁移 数据库发生更改导致调试失败解决方法(二)

    文章转载自:http://www.cnblogs.com/amoniyibeizi/p/4486617.html 前几天学MVC过程中,遇到更改Model类以后,运行程序就会出现数据已更改的问题导致调 ...

  3. C# 事务提交(非数据库)

    .Net 2.0开始支持 static void Main(string[] args) { using (TransactionScope ts = new TransactionScope()) ...

  4. 左右mysql事务提交

    package com.itheima.trans; import java.sql.Connection; import java.sql.PreparedStatement; import jav ...

  5. 深入GCD(五):资源竞争

    概述我将分四步来带大家研究研究程序的并发计算.第一步是基本的串行程序,然后使用GCD把它并行计算化.如果你想顺着步骤来尝试这些程序的话,可以下载源码.注意,别运行imagegcd2.m,这是个反面教材 ...

  6. 4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别

     事务提交过程 事务 基本概念 概念:一个或者多个DML语言组成 特点:要么都成功.要么都失败 事务的隔离性:多个client同一时候操作数据库的时候.要隔离它们的操作, 否则出现:脏读  不可反 ...

  7. 为DbContextScope添加数据库事务提交完成事件

    使用EF开发应用程序的一个难点就在于对其DbContext的生命周期管理,你的管理策略是否能很好的支持上层服务 使用独立事务,使用嵌套事务,并行执行,异步执行等需求? Mehdi El Gueddar ...

  8. SQL Server 2014:在修改表的内容时,提示“此单元格已更改,尚未将更改提交到数据库”,怎么处理?

    那一行上的属性为“不允许为null”的所有字段都填上对应信息,按回车键或者点击下一行任意一个单元格便会自动将更改的信息提交到数据库.

  9. mysql源码解读之事务提交过程(二)

    上一篇文章我介绍了在关闭binlog的情况下,事务提交的大概流程.之所以关闭binlog,是因为开启binlog后事务提交流程会变成两阶段提交,这里的两阶段提交并不涉及分布式事务,当然mysql把它称 ...

随机推荐

  1. GET/POST请求(NSURLSession)

    步骤 使用NSURLSession创建task,然后执行task Task a.NSURLSessionTask是一个抽象类,本身不能使用,只能使用它的子类 b.NSURLSessionDataTas ...

  2. python 打印对象的所有属性值

    def prn_obj(obj): print '\n'.join(['%s:%s' % item for item in obj.__dict__.items()])

  3. php中文乱码问题

    HTML中文乱码问题的解决方法. 比如有个index.html的页面(这里是指真正的静态页面,修改服务器的……伪静态的请看方案B) 1.在head标签里面加入这句 <head> <m ...

  4. Oracle Data Provider for .NET

    官方地址: http://www.oracle.com/technetwork/topics/dotnet/index-085163.html 终于有正式版了.不用装客户端,又小,确实好.

  5. 深入理解Nginx之调试优化技巧

    在开发过程中,我们经常会碰到段错误等异常,这时我们需要有相应的机制来进行调试,特别是服务提供在线上时,面对大量的日志信息,合理的调试处理机制对于开发来说是一件非常重要的事情,幸好Nginx本身提供了很 ...

  6. Drupal7网站+IIS7.0+PHP+MySql

    .服务器系统环境 Windows Server R2 Enterprise 64位操作系统 .所需软件 IIS7 PHPManager http://phpmanager.codeplex.com/r ...

  7. 烂泥:apache性能测试工具ab的应用

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试 ...

  8. 烂泥:通过binlog恢复mysql数据库

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在上一篇文章,我们讲解了有关mysql的binlog日志的基础知识.这篇文章,我们来讲解如何通过mysql的binlog日志来恢复数据库. 在使用bin ...

  9. android WebView网页浏览器

    组件位置:composite>WebView .xml <WebView android:id="@+id/webview_pipeweb" android:layou ...

  10. java 如何在pdf中生成表格

    1.目标 在pdf中生成一个可变表头的表格,并向其中填充数据.通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成表格. 每天生成一个文件夹存储 ...