将不确定变为确定~transactionscope何时提升为分布式事务?
相关文章
将不确定变为确定~transactionscope何时提升为分布式事务
将不确定变为确定~transactionscope何时提升为分布式事务~续
将不确定变为确定~transactionscope何时提升为分布式事务~再续(避免引起不必要的MSDTC)
对于frameworks的TransactionScope大家应该都很熟悉了,它是一个分布式事务的语句块,被包含起来的语句可以一起被提交,当出现异常后,统一进行回滚,这一切都是托管的。
当WEB服务器没有开启MSDTC服务时,会出现这个提示:
对于servers.msc中的MSDTC服务,它经常性的被挂掉
注意一下:如果你的msdtc服务挂了,当下一次WWW程序需要用到它时,它会自由重启。
而对于你的事务块,如果这个MSDTC服务被挂了后,如果你的事务块中包含“跨库”操作,它将会被自动提升到MSDTC分布式事务,
这时你整个代码块将会中断,并抛出你的异常!
1 public abstract class DAL<T> : IDAL<T> where T : class 2 { 3 4 public DAL(DbContext db) 5 { 6 DB = db; 7 } 8 9 10 #region Properies 11 /// <summary> 12 /// 静态上下文 13 /// </summary> 14 // protected readonly static DbContext DB = new Entity.testEntities(); 15 16 /// <summary> 17 /// 实例上下文 18 /// </summary> 19 protected DbContext DB; 20 21 #endregion
1 using (TransactionScope trans = new TransactionScope()) 2 { 3 try 4 { 5 base.Insert(entity); 6 entity.User_Profile.ID = entity.ID; 7 user_ProfileDAL.Insert(entity.User_Profile); 8 loginLogsDAL.Insert(new Entity.TestMSDTC.LoginLogs //跨库操作 9 { 10 ID = entity.ID, 11 LoginName = entity.Name, 12 }); 13 trans.Complete(); 14 } 15 catch (Exception) 16 { 17 18 throw; 19 } 20 finally 21 { 22 trans.Dispose(); 23 } 24 }
这时,你的程序由于服务器MSDTC的问题,整个流程被“走不通”,其时这是正常的,事务的作用就是为了保持“数据的完整性”,如果你把语句块写在同一事务中,那说明他们应该是同进同退的,这是一个理论的问题。
而我在之前看过老赵写过一个博文提到这个类似问题,看数据上下文的共享性会影响到事务被提升到MSTDC,我的测试告诉我,没有实现这个结果,这里希望老赵给出一个答案吧,呵呵!在这里先谢谢赵老大了!
将不确定变为确定~transactionscope何时提升为分布式事务?相关推荐
- 将不确定变为确定~transactionscope何时提升为分布式事务?(sql2005数据库解决提升到MSDTC的办法)...
回到目录 对于transactionscope不了解的同学,可以看我的相关文章 第二十六回 将不确定变为确定~transactionscope何时提升为分布式事务? 第二十七回 将不确定变为确 ...
- TransactionScope和分布式事务的注意点
分布式事务听起来很不错,其实不然.它只是尽可能的降低数据不一致的可能性,并不能完全避免.从我的应用中来看,总数约5千万的操作,错了十几个.当然,这个错误率完全可以忍受了.不能忍受的是当你的DB在clu ...
- C#分布式事务(TransactionScope )
TransactionScope是.Net Framework 2.0后,新增了一个名称空间.它的用途是为数据库访问提供了一个"轻量级"[区别于:SqlTransaction]的事 ...
- Java提升篇-事务隔离级别和传播机制
转载自 Java提升篇-事务隔离级别和传播机制 问题的提出 为了保证并发操作数据的正确性及一致性,SQL规范于1992年提出了数据库事务隔离级别. 事务隔离级别分类 事务隔离级别由低往高可分为以下几类 ...
- 【转】C#中使用TransactionScope类(分布式事务) 和 锁
如果在C#中使用TransactionScope类(分布式事务),则须注意如下事项: 1.在项目中引用using System.Transactions命名空间(先要在添加net组件的引用); 2.具 ...
- C#中使用TransactionScope类(分布式事务)
如果在C#中使用TransactionScope类(分布式事务),则须注意如下事项: 1.在项目中引用using System.Transactions命名空间(先要在添加net组件的引用); 2.具 ...
- TransactionScope 分布式事务
/// 发送消息 ///</summary> ///<param name="sendUserId"></param ...
- TransactionScope与SQL 中的事务
TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间.它的用途是为数据库访问提供了一个"轻量级"[区别于:SqlTransaction]的 ...
- .net mysql transactionscope_.net中使用transactionScope连接oracle数据库,事务没有提交,但是数据还是被修改了...
代码如下 try { using (TransactionScope scope=new TransactionScope()) { AddForSqlserver("insert into ...
最新文章
- TVM性能评估分析(四)
- crf与bitrate对照表
- aes加密字符串c++_springboot2.2.X手册:防抓包?快速实现API接口数据加密
- 去哪儿app_58款APP遭点名,多家基金、银行产品上榜!
- Blender Reference Manual 欢迎使用Blender手册!
- Android:Fragment官方文档
- Bootdo后台管理系统使用步骤详解
- Jetpack—LiveData组件的缺陷以及应对策略 转至元数据结尾
- iOS集成OpenCV,并实现图片马赛克
- 用python画钢铁侠_Matplotlib绘制漫威英雄战力图,带你飞起来!
- 用python进行微信分析(带群发功能)
- Windows10系统变慢,用上这19招,电脑性能大幅度提升!
- 自己制作的直流电机驱动器
- aspectj框架切入点表达式
- offer different kinds of LED lights
- WPF 仿微信聊天气泡
- JAVA-广联达-小朋友站队问题
- 【CSS】单行图片与文字垂直居中
- 机器学习方法的PPT
- 随机生成区间范围的整数(含负数)
热门文章
- 【转】使 用免费UMS架设Flash流媒体服务
- java查找最小字符集_如何查找Java中的默认字符集/编码?
- 临床科研设计的主要内容
- 箱线图怎么判断异常值_箱形图(Box-plot)识别异常值,是否有数据依据?还是经验法则?...
- adams2015安装教程
- C语言 | 编程实现6
- 计算机视觉 | 计算机界国际学术会议和期刊目录
- 定时采用ajax方式获得数据库,《基于Ajax的在线客服系统的设计与实现》-毕业设计论文(学术).doc...
- inotify加rsync备份mysql_centos7 实现inotify-tools + rsync,自动备份mysql数据库
- Anaconda 安装与使用