MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server。该服务用于管理多个服务器 .
位置:控制面板--管理工具--服务--Distributed Transaction Coordinator
依存关系:Remote Procedure Call(RPC)和Security Accounts Manager
建议:一般家用计算机涉及不到,除非你启用Message Queuing服务,可以停止。
解决办法:
1. 在windows控制面版-->管理工具-->服务-->Distributed Transaction Coordinator-->属性-->启动
2.在CMD下运行"net start msdtc"开启服务后正常。
注:如果在第1步Distributed Transaction Coordinator 无法启动,则是因为丢失了日志文件,重新创建日志文件,再启动就行了。重新创建 MSDTC 日志,并重新启动服务的步骤如下:
(1) 单击"开始",单击"运行",输入 cmd 后按"确定"。
(2) 输入:msdtc -resetlog (注意运行此命令时,不要执行挂起的事务)
(3) 最后输入:net start msdtc 回车,搞定!
下面是其它网友的补充:
今天在本地机直接在触发器里更新另一台服务器数据时出现: MSDTC不可用
解决办法:
在windows控制面版-->管理工具-->服务-->Distributed Transaction Coordinator-->属性-->启动
1.
A.不用事务,关用SELECT 语句.是否可以分布式查询?
B.LINKSERVER 在做分布式更新事务时不能对本机操作.(就是不能环回分布式事务)
C.DBCC TRACEON (3604, 7300)--用跟踪看更详细错误信息.
D.下载MS提供的DTCPing.exe 分装在两台机上,按README说明来运行它.看出错信息.
http://download.microsoft.com/download/complus/msdtc/1.7/nt45/en-us/DTCPing.exe
2.
两台机的MSDTC是否都打开了.
3.
MSDTC设置是否正确.
1).打开命令提示,运行"net stop msdtc",然后运行"net start msdtc"。
2).转至"组件服务管理工具"。
3).浏览至"启动管理工具"。
4).选择"组件服务"。
a.展开"组件服务"树,然后展开"我的电脑"。
b.右键单击"我的电脑",然后选择"属性"。
C.在MSDTC选项卡中,确保选中了下列选项: 网络 DTC 访问 网络管理 网络事务 XA 事务
e.另外,"DTC登录帐户"一定要设置为"NT Authority/NetworkService"。
5).单击"确定"。这样将会提示您"MS DTC 将会停止并重新启动。
所有的依赖服务将被停止。请按''是''继续"。单击"是"继续。
6).单击"确定"关闭"我的电脑"属性窗口。
4.
MSDTC依赖于RPC,RPC使用的端口是135,测试135端口是否打开.是否有防火墙?如果有先关了防火墙.
telnet IP 135
如果是关闭的打开它.
5.
有的机由于各种原因,SQLOLEDB不能使用分布式事务,更改为"MSDASQL" 的ODBC方式联接.
新闻热点
疑难解答