sql server分布式事务解决方案[新事务不能登记到指定的事务处理器中错误]
适用环境
操作系统:windows 2003,xp
数据库:sql server 2000/sql server 2005
使用链接服务器进行远程数据库访问的情况
一、 问题现象在执行分布式事务时,在sql server 2005下收到如下错误:
消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行
无法执行该操作,因为链接服务器 "xxxxx" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。
在sql server 2000下收到如下错误:
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
二、 解决方案1. 双方启动MSDTC服务MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(Distributed Transaction Coordinator)服务。
2. 打开双方135端口MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。
使用“telnet IP 135 ”命令测试对方端口是否对外开放。也可用端口扫描软件(比如Advanced Port Scanner)扫描端口以判断端口是否开放。
3. 保证链接服务器中语句没有访问发起事务服务器的操作在发起事务的服务器执行链接服务器上的查询、视图或存储过程中含有访问发起事务服务器的操作,这样的操作叫做环回(loopback),是不被支持的,所以要保证在链接服务器中不存在此类操作。
4. 在事务开始前加入set xact_abort ON语句对于大多数 OLE DB 提供程序(包括 SQL Server),必须将隐式或显示事务中的数据修改语句中的 XACT_ABORT 设置为 ON。唯一不需要该选项的情况是在提供程序支持嵌套事务时。
5. MSDTC设置打开“管理工具——组件服务”,以此打开“组件服务——计算机”,在“我的电脑”上点击右键。在MSDTC选项卡中,点击“安全配置”按钮。
在安全配置窗口中做如下设置:
l 选中“网络DTC访问”
l 在客户端管理中选中“允许远程客户端”“允许远程管理”
l 在事务管理通讯中选“允许入站”“允许出站”“不要求进行验证”
l 保证DTC登陆账户为:NT Authority\NetworkService
建立链接sql server服务器,通常有两种情况:
l 第一种情况,产品选”sql server”
EXEC sp_addlinkedserver
@server='linkServerName',
@srvproduct = N'SQL Server'
这种情况,@server (linkServerName)就是要链接的sqlserver服务器名或者ip地址。
l 第二种情况,访问接口选“Microsoft OLE DB Provider Sql Server”或“Sql Native Client”
EXEC sp_addlinkedserver
@server=' linkServerName ',
@srvproduct='',
@provider='SQLNCLI',
@datasrc='sqlServerName'
这种情况,@datasrc(sqlServerName)就是要链接的实际sqlserver服务器名或者ip地址。
Sql server数据库引擎是通过上面设置的服务器名或者ip地址访问链接服务器,DTC服务只通过服务器名地址访问链接服务器,所以要保证数据库引擎和DTC都能通过服务器名或者ip地址访问到链接服务器。
数据库引擎和DTC解析服务器的方式不太一样,下面分别叙述
6.1 数据库引擎第一种情况的@server或者第二种情况的@datasrc设置为ip地址时,数据库引擎会根据ip地址访问链接服务器,这时不需要做名称解析。
第一种情况的@server或者第二种情况的@datasrc设置为sql server服务器名时,需要做名称解析,就是把服务器名解析为ip地址。
有两个办法解析服务器名:
一是在sql server客户端配置中设置一个别名,将上面的服务器名对应到链接服务器的ip地址。
二是在“C:\WINDOWS\system32\drivers\etc\hosts”文件中增加一条记录:
xxx.xxx.xxx.xxx 服务器名
作用同样是把服务器名对应到链接服务器的ip地址。
6.2 DTC不管哪一种情况,只要@server设置的是服务器名而不是ip地址,就需要进行名称解析,办法同上面第二种办法,在hosts文件中增加解析记录,上面的第一种办法对DTC不起作用。
如果@server设置的是ip地址,同样不需要做域名解析工作。
7. 远程服务器上的名称解析分布式事务的参与服务器是需要相互访问的,发起查询的服务器要根据机器名或ip查找远程服务器的,同样远程服务器也要查找发起服务器,远程服务器通过发起服务器的机器名查找服务器,所以要保证远程服务器能够通过发起服务器的机器名访问到发起服务器。
一般的,两个服务器在同一网段机器名能就行很好的解析,但是也不保证都能很好的解析,所以比较保险的做法是:
在远程服务器的在“C:\WINDOWS\system32\drivers\etc\hosts”文件中增加一条记录:
xxx.xxx.xxx.xxx 发起服务器名
本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2010/11/10/2911985.html ,如需转载请自行联系原作者
相关文章:

微软“叛变”谷歌 Chromium!
去年,微软工程师在公开演示 Azure 服务时,微软 Edge 浏览器频频崩溃,逼得他只能在众目睽睽的尴尬局面下,使用 Edge 下载 Chrome 浏览器来继续他的演示。一年之后的今天,Edge 就抱上了 Chrome 的大腿。图片来源…

vCenter Server Appliance 6.5 中重置丢失或忘记的 root 密码
vCenter Server Appliance 6.5 中重置丢失或忘记的 root 密码 目前安装vCenter Server Appliance 6.5客户原来越多,给用户配置过程中,往往会忽略默认的root 密码策略:60天过期。一旦密码过期或忘记密码,vcsa的管理控制台就无法通过…

linux 查看剪贴板历史,Clipboard History Manager插件,查看浏览器剪贴板历史记录
Clipboard History Manager插件,是一款浏览器剪贴板历史记录管理工具,通过它可以快速查看最多1000个本机上的剪贴数据,适用于Mac和Windows操作系统。A full-featured desktop clipboard manager for Mac, Windows and Linux to track what yo…

ORACLE执行计划的一些基本概念
本文介绍了ORACLE执行计划的一些基本概念,供学习应用。 一.相关的概念 Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的。对每个表都有一个rowid的伪列,…

公开课报名 | 那些年,我们在文本分类中遇到的坑
文本分类问题是企业在 NLP 领域中处理文本数据时经常会遇到的一个问题,很多时候,我们需要将文本信息进行分类,或提相关的接口以供外部进行文本上传,在针对于用户所上传的文档信息就需要进行文档内容的分类,那么针对于这…

Cisco网院成立10周年-未来三年在蓉增50所
2008年9月18日—— 今天,主题为“十年创新,传承未来”的Cisco中国网络技术学院十周年庆典在四川成都举行。会上,Cisco宣布将与四川省政府和教育部进一步加强合作,在四川新建立50所Cisco网络技术学院,以实现该项目在四川…

荣耀预装linux安装包,关于华为机子没有预装应用商店讨论
在荣耀笔记本(Linux版)中拥有深度应用商店,几步就搞定啦!在荣耀笔记本(Linux版)中拥有深度应用商店,几步就搞定啦!深度操作系统 今天随着预装深度操作系统(deepin)的荣耀笔记本(Linux版)的开卖(未来可期!荣耀Magicbook…

如何自学CS?
整理 | 非主流出品 | AI科技大本营哪个行业的平均工资最高?计算机。国家统计局的数据显示,2016 年信息传输、软件和信息技术服务业年平均工资为 122478 元,首超金融行业,并于 2017 年再次夺魁。在互联网和人工智能浪潮的推动下&am…

oracle 使用nfs挂载的目录不能进行归档
oracle 使用nfs挂载的目录不能进行归档 在做实验时将oracle的归档目录放在nfs服务器上,启动数据库就会死掉,也不能进行归档。在报警日志中发现WARNING:NFS file system /mnt mounted with incorrect options WARNING:Expected NFS mount options: rs…

生产中NFS案例记录---写入权限解决过程
生产中NFS案例记录---写入权限解决过程NFS配置要求:1、 将oracle文件写入到NFS Server端,注意权限要与oracle端一致。2、 Oracle端目录文件所属用户为oracle,uid:500 gid 501。格式约定:命令显示过程 文字说明特别注意…

吴文俊人工智能科学技术奖:陆汝钤院士、百度王海峰等获奖
12月9日上午,被誉为“中国智能科学技术最高奖”的吴文俊人工智能科学技术奖在苏州举行颁奖典礼。本届吴文俊人工智能奖共对70项人工智能成果授奖。其中,中国科学院院士、中国科学院数学与系统科学研究院研究员陆汝钤成为首位吴文俊人工智能最高成就奖获得…

河南科技大学c语言章节作业答案,河南科技大学C语言试题
c语言试题,基本上是题库。上机作业用的。大家好好把握。C程序的运行环境和简单C源程序的调试,实验报告(共 题),用时(127分33秒),成绩(A)1、 有如下程序: #include"stdio.h" main( ) { int a8;printf("%d,%5d,%-5d#…

qinyu.blog.51cto.com里的好文章,比尔盖茨
世纪枭雄比尔盖茨的王者传奇儿时,他便躁动不安,顶着梳不顺的头发,在竞技中缕缕获胜。少年英才没有机会慢慢成长,21岁,他创办了微软,从此走上IT业的颠峰之路,垄断了13年的财富榜首;32…

Clean-Code: 注释
别给糟糕的代码加注释-----------------重新写吧 这是书中的关于注释一章的第一句话,怎么说呢,这句话个人感觉很对,但是实际上却很少这么做, 有几个原因: 糟糕的代码不是自己写的,别人写的代码࿰…

在c语言中,函数中的自动变量可以赋初值,每调用一次,赋一次初值,计算机二级考试 程序设计基础试题及答案三...
《程序设计基础》考试试卷三1. 判断下面标识符中哪个是C语言中合法的用户定义标识符:A. a-bB. #abdC. typedefD. _max2. …b?在内存中占个字节,“B”在内存中占个字节。A. 1B. 2C. 3D. 43. 下列表达式的值哪些不等于0?A. 2>>1B. ~a&am…

免费报名 | WPS专家教你文本分类在企业中的应用实践
文本分类问题是企业在 NLP 领域中处理文本数据时经常会遇到的一个问题,很多时候,我们需要将文本信息进行分类,或提相关的接口以供外部进行文本上传,在针对于用户所上传的文档信息就需要进行文档内容的分类,那么针对于这…

[ZT]如何取得客户端的Windows登录用户名?
1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:this.User.Identity.Name (IIS安全設置必須使用集成Windows驗證) 获取客户端电脑名:Page.Request.UserHostName 获取客户端电脑IP…

C#使用WIN32API来高效率的遍历文件和目录(转)
我们有时需要遍历某个目录下的文件和子目录,可以使用System.IO.DirectoryInfo.GetDirectories或 GetFiles来获得目录下的所有的文件和子目录,当这个目录下的内容比较多时,这个操作就比较耗时间,有时我们仅仅需要知道某个目录下是否…

c语言1变A,c语言那些细节之a+1和a+1的区别
首先a是一个数组名,当看到这个a与&a时,一般我们的理解都是这个数组的首地址。没错,如果加上打印的话,确实两个值是一样的。不过&a是整个数组的首地址,a则是数组首元素的地址,虽然值一样,…

【收藏清单】AI学习资料汇总——你想要的AI资源,这里都有
本文汇总了TinyMind站内AI资料类热门文章TOP10,欢迎大家各取所需。来源:https://www.tinymind.cn/ 1、【AI入门者必看】——人工智能技术人才成长路线图 入门AI的两大方式与进阶AI的十大路线,吐血之作,人手必备。路线图可在文末…

25,000,000行的代码就问你敢不敢动?!
你经历过绝望吗?近日,Hacker News 上发起了一个名为“你见过最糟糕的代码是什么?”(https://news.ycombinator.com/item?id18442637)的话题,引发了无数网友回忆讨论,甚至还再次让软件巨头 Orac…

c语言规定预处理命令必须以什么开头,C语言规定预处理命令必须以___________开头...
在定温定容下,语言规开反应NH4Cl (s) NH3 (g) HCl (g)达平衡,加入惰性气体平衡不移动05580041:定预若a、b均为int型变量,且a100,则for (b100;a!b;a,b) printf(----\n)是死循环。()处理05710012:以下正确的描述是( )。命令成年早期…

MySQL 微秒慢查询补丁
作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。原文出自:The new cool MySQL patch has landed! Check your…

Win10 15063 开始运行不保存历史记录原因和解决方法
在Win10 1703的时候你也许会发现开始运行以后,再次打开就没有任何历史记录了,常规方法是桌面-右键-个性化-开始-显示最常用的应用..可是打开是灰色的不可选.. 其实这个问题很好解决,在win10 15063隐私里面有一个设置的原因,请跟随…

CCNA培训课总结笔记--交换机的基本配置(十三)
实验目的:熟悉交换机的基本配置,学会在交换机上划分VLAN及如何将接口划分到指定的VLAN.本实验主要是用模拟器DynamipsGUI及3640的IOS文件做的实验,所以配置的命令有些会有出入.实验设备:3640交换机系列实验内容:其实交换机的基本操作包括设置特权登陆密码,设置控制台的密码等都…

TensorFlow 2.0发布在即,高级API变化抢先看
作者 | Sandeep Gupta, Josh Gordon, and Karmel Allison整理 | 非主流、Jane出品 | AI科技大本营【导语】早在今年 8 月的时候,谷歌开源战略师 Edd Wilder-James 在一封公开邮件中表示正在研发 TensorFlow 2.0,并将于今年晚些时候发布预览版。在 2018 年…

mp4 android自动播放,Android 使用VideoView播放MP4的简单实现
使用VideoView播放MP4播放示例实现简单的播放功能,播放手机本地的MP4文件。不依赖任何第三方框架,不添加任何防腐剂。添加一个系统自带的控制条。申请权限读取存储中的MP4文件准备布局文件在frag_video_view.xml中放置VideoView;为了让内容居…

Sublime-text theme 颜色主题
主题文件下载:Monokai.rar 替换办法: Preferences -> Browser packages -> Color Scheme - DefalutPreferences -> Browser packages -> Color Scheme - Defalut 覆盖 文件物理位置(win7): C:\Users\用户名\AppData\Roaming\S…
android 自定义radiobutton 样式,RadioButton自定义点击时的背景颜色
一、应用场景:在使用 RadioButton 时,有时我们会需要自定义点击时改变背景颜色的效果。效果图:RadioButton自定义背景颜色.jpg二、实现步骤:1、新建一组 RadioButton :android:layout_width"match_parent"an…

如何让网页不受电信114劫持
每当出现输入网页错误时,电信总会把你劫持到他所在的网页下,如下:[url]http://game1.zj.vnet.cn/url1.php?MTwww.dsdsddsds.com[/url]看了这张老脸就觉得浑身不舒服。能不能想个办法不让他出现呢?嘿嘿,其实很简单&…