当前位置 主页 > 服务器问题 > win服务器问题汇总 >

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

    栏目:win服务器问题汇总 时间:2019-12-05 13:47

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