首页 > 服务器 > 管理维护 > 正文

服务器的MSDTC不可用解决办法

2024-09-10 14:19:55
字体:
来源:转载
供稿:网友

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方式联接. 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表