zoukankan      html  css  js  c++  java
  • MSDTC故障排除,DTCTester用法 (二)

    摘自:https://support.microsoft.com/zh-cn/kb/293799#bookmark-4

    ————————————————————————————

    概要
    DTCTester 测试指定的 Microsoft SQL Server 针对分布式的事务。此工具有助于通过防火墙或网络测试分布式的事务。DTCTester 使用 ODBC API 对 SQL Server 数据库执行分布式的事务。

     

    下载 DTCTester 工具

    下列文件已可从 Microsoft 下载中心下载:
    Download下载 DTCTester 软件包。有关如何下载 Microsoft 支持文件的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    119591如何从在线服务获得 Microsoft 支持文件
    Microsoft 已对此文件进行病毒扫描。Microsoft 使用自该文件发布日期起可用的最新的病毒检测软件。该文件存储在安全增强型服务器上,以防止对文件进行任何未经授权的更改。

     

    DTCTester 工具的作用是什么?

    • 通过使用数据源名称 (DSN)、 用户名和密码,您在命令行上使用提供的默认网络库建立与 SQL Server 的连接。
    • 创建一个临时表。
    • 登记在事务中的连接。
    • 会在临时表上的插入。
    • 提交分布式的事务。
    • 选择插入的值,以确保它已提交。
    • 关闭连接。
     

    如何使用 DTCTester 工具

    1. 为您的 SQL Server ODBC 控制面板实用程序中通过创建 ODBC 数据源。
    2. 从命令行执行以下命令︰
      dtctester <dsn name><user name><password>
      替换为您的环境相应的括号中的值。
     

    其中 DTCTester 工具失败的常见原因

    • 防火墙有关闭的正确端口。
    • 没有坏的 WINS/DNS 条目。
    • 错误配置的 SQL Server 群集或双网卡。
    • 其他错误配置的网络设置。
     

    DTCTester 失败时发生的错误的示例

    Command Line: dtctester bad baduser badpass
    Executed: dtctester
    DSN: bad
    User Name: baduser
    Password: badpass
    tablename=#dtc7421
    Creating Temp Table for Testing: #dtc7421
    Warning: No Columns in Result Set From Executing: 'create table #dtc7421 (ival int)'
    Initializing DTC
    Beginning DTC Transaction
    Enlisting Connection in Transaction
    Error:
    SQLSTATE=25S12, Native error=-2147168242,msg='[Microsoft][ODBC SQL Server Driver] Distributed transaction error'
    Error:
    SQLSTATE=24000, Native error=0,msg=[Microsoft][ODBC SQL Server Driver]Invalid cursor state
    Aborting DTC Transaction
    Releasing DTC Interface Pointers
    Successfully Released pTransaction Pointer
    					
     

    成功的 DTCTester 输出的示例

    Command Line: dtctester test sa
    Executed: dtctester
    DSN: test
    User Name: sa
    Password is assumed to be NULL.
    Connecting to the database
    tablename= #dtc7488
    Creating Temp Table for Testing: #dtc7488
    Warning: No Columns in Result Set From Executing: 'create table #dtc7488 (ival int)'
    Initializing DTC
    Beginning DTC Transaction
    Enlisting Connection in Transaction
    Executing SQL Statement in DTC Transaction
    Inserting into Temp...insert into #dtc7488 values (1)
    Warning: No Columns in Result Set From Executing: 'insert into #dtc7488 values (1) '
    Verifying Insert into Temp...select * from #dtc7488 (should be 1): 1
    Press enter to commit transaction.
    
    Committing DTC Transaction
    Releasing DTC Interface Pointers
    Successfully Released pTransaction Pointer.
    Disconnecting from Database and Cleaning up Handles
    					
     

    DTC 的建议到打开的端口

    输入端口端口的目的
    打开 135 RPC EPM (终结点映射程序)
    打开 1433 TDS SQL 通信使用 TCP/IP 时
    打开 1434 SQL 2000 集成安全性
    打开 5100 5200 MSDTC [EPM 通过动态分配端口]
     
    参考资料
    有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    191168信息︰ 错误"-2147168246 (8004d00a)"无法在调用对象的事务中登记
    其他信息,请参阅以下 Microsoft 网站上的白皮书︰
    与防火墙一起使用分布式的 COM
    http://www.microsoft.com/com/wpaper/dcomfw.asp
     
  • 相关阅读:
    signalr推送消息
    WebApi2跨域问题
    iTextSharp生成pdf的一个简单例子
    遇到的错误记录
    AutoMapper用法
    visual studio 2015中的webapi生成helpPage,页面不显示方法说明问题解决
    visualstudio 2013 mysql entityframework :实体模型无法添加,闪退
    webapi相关知识
    2016年4月14日
    2016年4月13日
  • 原文地址:https://www.cnblogs.com/gezifeiyang/p/6184119.html
Copyright © 2011-2022 走看看