惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
B
Blog RSS Feed
Y
Y Combinator Blog
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
P
Proofpoint News Feed
H
Help Net Security
V
Visual Studio Blog
S
Security Affairs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
博客园_首页
H
Hacker News: Front Page
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
O
OpenAI News
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
IT之家
IT之家
罗磊的独立博客
P
Palo Alto Networks Blog
The GitHub Blog
The GitHub Blog
大猫的无限游戏
大猫的无限游戏
Cloudbric
Cloudbric
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
美团技术团队
NISL@THU
NISL@THU
H
Hackread – Cybersecurity News, Data Breaches, AI and More
AWS News Blog
AWS News Blog
J
Java Code Geeks
G
Google Developers Blog
Schneier on Security
Schneier on Security
PCI Perspectives
PCI Perspectives
L
LINUX DO - 最新话题
TaoSecurity Blog
TaoSecurity Blog
V
V2EX
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
Attack and Defense Labs
Attack and Defense Labs
小众软件
小众软件
The Cloudflare Blog
Google Online Security Blog
Google Online Security Blog
有赞技术团队
有赞技术团队
GbyAI
GbyAI
L
Lohrmann on Cybersecurity
C
Cybersecurity and Infrastructure Security Agency CISA

博客园 - 杨义金

Csla One or more properties are not registered for this type unomp 矿池运行问题随记 矿池负载运行监测记录 MySql 数据库移植记录 后台服务运行后无故停止运行,原因不明 缓存过期时间的设置 Bitcoin 使用及配置记录 关于 CSLA 服务器部署WCF访问出错的问题 AR 不同 继承映射的问题总结 当事人角色 变更映射策略引起的问题 Castle ActiveRecord 二级缓存使用 异常记录 VS2013 抛出 stackoverflow exception 的追踪 WF4.0 工作流设计器 传入参数问题记录? Solving GitHub FetchHead (MergeConflict) in Visual Studio 2013 昆明光标科技有限公司简介 Castle.ActiveRecord 多对多关系 引发的错误处理 String PK StringBuilder,传说就是传说,只有动手实验,才能得出确定的答案 .net mvc Bundle 问题解决方案 .net 4.0 自定义本地缓存策略的不同实现
CastleActiveRecord在多线程 事务提交时数据库资源竞争导致更新失败的测试结果记录
杨义金 · 2015-12-05 · via 博客园 - 杨义金

CastleActiveRecord 经过测试,隔离级别:

      // 摘要: 

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

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

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

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

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