分布数据库的事务处理-SQLServer
更新时间:2023-09-22 22:47:01 阅读量: 经管营销 文档下载
分布式数据库事务处理
1. 为什么要用分布事务?
1) 为了保证数据库完整性,一致性。如大监管标准版中,业务库与基础信息库是分开的,
客户一般要求将最终结果反写到基础数据中。如果不引用分布事务,由于网络的原因及其他外界各方面的原因,会导至数据的不一致性。
2) 在对外项目中,我们时常会听到客户反应“为什么在流程中,前面是有的,到后面就是
不对了?(在操作后事件中,同步操作多表)”类似这样的问题,我方经常回复客户是“将此记录删除了,重新走一条”。
以上这种问题可以通过,开启事务的方法来避免,减少垃圾数据。下面以分布数据事务为例,讲解一下环境的配置及写法。
2.分布数据库数据的配置
数据库:2008 R2
1). 双方启动MSDTC服务
MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(DistributedTransactionCoordinator)服务。如下图:
2. 打开双方135端口
MSDTC服务依赖于RPC(RemoteProcedureCall(RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。
使用“telnetIP135”命令测试对方端口是否对外开放。也可用端口扫描软件(比如AdvancedPortScanner)扫描端口以判断端口是否开放。如果图:
图2)
图3)
图4)
图5)
图6)
图7)
然后一直下一步,直到见图8)
点击“完成”即可。
补充:首先允许Msdtc.exe 通过Window防火墙,如下图:
图9)
图10)
数据库按以下设置完成即可。
4.实例
1)在数据库中写相关的代码。
在启动事务的情况下,查B库的Test表。
在启动事务的情况下,对B库的Test表进行增、删、改。
注:在执行增、删、改时,确保XACT_ABORT是打开的。
2)在.net 代码中写分布事务
publicstring Server1Str =
System.Configuration.ConfigurationManager.ConnectionStrings[\].ToString();
publicstring
Server2Str
=
System.Configuration.ConfigurationManager.ConnectionStrings[\].ToString
();
TransactionOptionstOpt = newTransactionOptions();
tOpt.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; // 设置超时间隔为2分钟,默认为60秒 tOpt.Timeout = newTimeSpan(0, 2, 0);
using (TransactionScope scope =
newTransactionScope(TransactionScopeOption.RequiresNew, tOpt)) {
SqlConnection ser1conn = newSqlConnection(Server1Str); SqlConnection ser2conn = newSqlConnection(Server2Str); try
{
stringRowGuid = Guid.NewGuid().ToString();
// SqlConnection ser1conn = new SqlConnection(Server1Str); ser1conn.Open();
SqlCommand ser1cmd = newSqlCommand();
ser1cmd.Connection = ser1conn;
ser1cmd.CommandText = \values('eeeeee','\ + RowGuid + \; ser1cmd.ExecuteNonQuery();
ser2conn.Open();
SqlCommand ser2cmd = newSqlCommand();
ser2cmd.Connection = ser1conn;
ser2cmd.CommandText = \values('eeeeee','\ + RowGuid + \; ser2cmd.ExecuteNonQuery(); scope.Complete(); this.label2.Text = \;
} catch (Exception ex) {
this.label2.Text = ex.Message.ToString(); } finally
{ ser1conn.Close();
ser1conn.Dispose(); ser2conn.Close(); ser2conn.Dispose(); scope.Dispose(); }
}
正在阅读:
分布数据库的事务处理-SQLServer09-22
The MPI Standard A Progress Report04-15
最新(演讲稿)之高二升高三励志演讲稿03-14
新课标高考数学模拟试题文科数学(含答案)05-24
挤压工艺及模具测试题(一)05-24
对付宝宝咳嗽、发烧小办法07-19
二级报名时间02-08
最敬佩的一个人作文500字06-22
希伯来书课程讲义0310-01
- 教育局拟征求中考升学奖励制度
- 2020房地产销售主管年终工作总结
- 虚拟多台位互感器检定装置投资项目可行性分析
- 车间工人辞职报告范本
- 溴投资项目可行性分析
- 改名字申请书怎么写
- 忧与爱作文素材
- 溴苯腈投资项目可行性分析
- 2020清华大学考研复试时间:3月6日至22日
- 2020年蚌埠高考查分系统网址
- 2020年二建《建筑工程实务》测试题及答案(13)
- 生死感悟——人间世观感一
- 武陵源区军地小学观看魏书生《如何当好班主任》讲座录像
- 全球10大安全旅游国出炉日本排名第9
- 企业策划书模板
- 高中英语教师工作总结3篇
- 法定代表人证明范本
- 大学助学金申请书范文1700字
- 案外人申请不予执行仲裁裁决司法解释施行首份申请书递交齐齐哈尔...
- 环球国际房地产开发项目策划
- SQLServer
- 分布
- 事务
- 数据库
- 处理
- 一年级趣数学生版 - 图文
- 第三章 国际战略环境 - -30个知识点
- 中烟金山施工组织设计
- 防水模板项目可行性研究报告(目录) - 图文
- 影视特技与后期制作大纲
- 中小学生电子学籍管理常见问题及解答
- 4B M3U3(5)小卷子
- 黄沙矿安全验收评价报告:危险、有害因素的识别与分析
- 2016年高考真题 - 文科综合(北京卷) Word版含答案 - 图文
- 课程与教学论形考任务
- 龙门吊安装、拆卸安全施工方案 - 图文
- 特许经营体系的构建于设计大作业最终修订版 - 图文
- 2016版高中物理 4.3楞次定律课后巩固提升 新人教版选修3-2
- 流体力学与液压传动复习题4套含答案(大学期末复习资料) - 图文
- 牙科x片的小技巧 - 图文
- 爆炸力学讲义 - 图文
- 劳动保障局机关事业保险处巾帼文明岗事迹材料
- (押题密卷)新九年级物理全册 18.3 测量小灯泡的电功率课后习题(新版)新人教版
- 相平衡 电化学 界面现象习题-修改版
- 水控~题