.net mysql transactionscope_C#中的事务TransactionScope

.net mysql transactionscope_C#中的事务TransactionScopeTransactionOptionstransactionOption=newTransactionOptions();//设置事务隔离级别transactionOption.IsolationLevel=System.Transactions.IsolationLevel.Serializable;//设置事务超时时间为60秒transactionOption.Timeout=new…

大家好,又见面了,我是你们的朋友全栈君。

335b83df261c422459d4afc29ba290e5.png

d1b641f023dd079c9e4a800b96607d9d.gif

TransactionOptions transactionOption = newTransactionOptions();//设置事务隔离级别

transactionOption.IsolationLevel =System.Transactions.IsolationLevel.Serializable;//设置事务超时时间为60秒

transactionOption.Timeout = new TimeSpan(0, 0, 30);using (TransactionScope scope = newTransactionScope(TransactionScopeOption.Required, transactionOption))

{//处理业务逻辑

scope.Complete();

}

View Code

一、TransactionScope的优点

1、使用起来比较方便.TransactionScope可以实现隐式的事务,使你可以在写数据访问层代码的时候不用考虑到事务,而在业务层的控制事务.

2、可以实现分布式事务,比如跨库或MSMQ.

二、TransactionScope缺点

1、性价比不高.比如,你只是在”Scope”里控制一个库的事务.用”TransactionScope”就有点浪费了.

2、一般情况下只要你使用”TransactionScope”,都要配置MSDTC,要配防火墙,要开139端口.这个端口不可以更改

三、TransactionScope事务级别

在TransactionScope中默认的事务级别是Serializable,即在事务过程中,完全性锁表。别的进程不能查询,修改,新增,删除。这样会导致效率大大降低,虽然数据完整性很高。通常我们不需要那么高的数据完整性。所以需要修改默认的事务级别。

四、在C#中使用TransactionScope类(分布式事务),则须注意如下事项

1、在项目中引用using System.Transactions命名空间(先要在添加net组件的引用);

2、对MSDTC组件设置:

在控制面板—>管理工具—>服务 中,开启Distributed Transaction Coordinator 服务。

a、控制面板->管理工具->组件服务->计算机->我的电脑->右键->属性

b、选择MSDTC页, 确认”使用本地协调器”

c、点击下方”安全配置”按钮

d、勾选: “允许网络DTC访问”,”允许远程客户端”,”允许入站”,”允许出站”,”不要求进行身份验证”.

e、对于数据库服务器端, 可选择”要求对呼叫方验证”

f、勾选:”启用事务Internet协议(TIP)事务”。

g、在双方防火墙中增加MSDTC.exe例外

可用命令行: netsh firewall set allowedprogram %windir%/system32/msdtc.exe MSDTC enable

3、重启IIS服务器。

注意:

我们只要确保数据库的打开操作是在事务范围内打开就行了。这样就可以做到事务的正确操作。

如果WEB服务器和数据库是在同一台服务器上,TransactionScope使用的是本地事务,这时不需要配置MSDTC。

如果WEB服务器和数据库不在同一台服务器上,TransactionScope会自动提升事务级别为分布式事务,这时就需要配置MSDTC。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161943.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 搭建环境是什么意思_如何搭建安卓开发环境

    搭建环境是什么意思_如何搭建安卓开发环境WebIDE下载网址:https://tools.hana.ondemand.com/#sapui5下载好之后打开进入WEBIDE\eclipse\config_master\service.destinations\destinations,在destinations文件下面拷入SAPGUI的客户端配置(txt文档),URL填入GUI上配置的服务器地址就行,端口就配8080(有冲突的话在后台关掉),格式如下之后返回\WEBIDE\eclipse打开orion运行运…

    2022年10月10日
    0
  • 载波频率与传输速率_频段带宽80

    载波频率与传输速率_频段带宽80频段  频段(Band)是指一段频率范围,比如LTE的FDD频段:  通信时不会直接拿一个Band来用,因此还会细分。信道带宽(ChannelBandwidth)  信道带宽限定了允许通过该信道的上下限频率,也即限定了一个频率通带。在一个频带Band中,可以灵活分配若干个不同的信道带宽。LTE系统支持信道带宽灵活可变,有6种可以配置,分别是1.4MHz,3MHz,5MHz,10MHz,15MHz,20MHz。较低的带宽1.4MHz和3MHz,可以方便CDMA2000使用的频谱迁移到LTE,同时帮

    2022年10月7日
    0
  • RTP协议简介

    RTP协议简介以下转自:nkmnkm的专栏http://blog.csdn.net/niu_gao/article/details/69467812017/07/21RTP协议分析(转自:http://blog.csdn.net/bripengandre/article/details/2238818)分类: NetworkSecurity2008-04-0116

    2022年6月28日
    25
  • python精彩编程200例 pdf-Python程序设计 第3版pdf「建议收藏」

    Python程序设计第3版内容简介《Python程序设计第3版》是面向大学计算机科学专业的教材。本书以Python语言为工具,采用相当传统的方法,强调解决问题、设计和编程是计算机科学的核心技能。全书共13章,此外,还包含两个附录。第1章到第5章介绍计算机与程序、编写简单程序、数字计算、对象和图形、字符串处理等基础知识。第6章到第8章介绍函数、判断结构、循环结构和布尔值等话题。第9章到第1…

    2022年4月6日
    114
  • Silverlight:telerik RadControls中RadGridView的一个Bug及解决办法(转载)

    Silverlight:telerik RadControls中RadGridView的一个Bug及解决办法(转载)当RadGridView中嵌套RadComboBox,且RadGridView的高度不够出现滚动条时,上下拉动滚动条后,RadComboBox中的选中值将丢失!  如下图:  滚动条未拖动前    滚动条上下拖动后(注意下图的高亮部分)    重现该Bug的测试代码:  Model层  TextValueObject.csnamespac…

    2022年7月24日
    20
  • 3d游戏项目实训一周总结 2

    3d游戏项目实训一周总结 2在本周的项目实训中,我的主要工作是完善对玩家角色的控制脚本,以及初步实现游戏中的AI功能。该AI功能包括游戏玩家角色的AI功能和游戏非玩家角色的AI功能。在玩家角色的控制方面,我们增加了新的需求,要求我们的角色,鲲,不仅能在海底自由移动,还要能飞到天上。角色的控制功能如下:1.当角色在海底中,可以自由地在海底空间移动;2.当角色在天空中时,只能在“水平空间”上移动。3.角色可以从海底飞向天空,飞出…

    2022年8月24日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号