2011-04-04 104 views
4

我目前正在将应用程序升级到SQL 2008/Server 2008 R2 x64,我看到一些奇怪的行为,我在SQL 2005/Server 2003.随机我从MSDTC得到一个异常:The partner transaction manager has disabled its support for remote/network transactions. (Exception from HRESULT: 0x8004D025)。请注意,我已启用网络交易而无需身份验证,并且这些交易在95%的时间内都可以工作。但随后一些人失败了,这是一个SQLBulkCopy对象,如果这是相关的。在SQL 2008/Server 2008 R2 x64上使用MSDTC事务异常HRESULT:0x8004D025

我已经调查了DTC统计信息,并且有趣的是当事务抛出这个异常时没有中止事务,但它记录了一个完成的事务。最让人感兴趣的是远程事务管理器也会创建一个新的事务(已提交状态)。第二次写入是成功写入数据库的事务的一部分,但第一次写入不成功。

在时序方面,当我看到这个错误发生了以下内容:

  1. 从表中删除(这工作)
  2. Bulkcopy在新行(这失败,引发异常的“ WriteToServer“方法)
  3. 创建写入发生的记录(这有效)。

我知道SQL和应用程序都已经为远程事务配置了MSDTC,因为几个事务可以成功工作。任何想法,为什么发生这种情况,我该如何解决它?

回答

7

没有亲眼见过这一个在实践中,却发现这一点:

here

  • 请务必检查 “网络DTC访问”, “允许远程客户端”, “允许入站/出站”,“启用TIP” (有些选项可能没有必要, 有一个尝试,让您的配置)
  • 该服务将重新启动
  • 但你可能需要重新启动服务器,如果它仍然不起作用
  • +2

    什么惊喜。重新启动这两台服务器,并且在100次交易之后我无法再现...感谢您用我本来应该做的事情把我放在头上。哦,至少对于下一个人来说,HRESULT存在一个问题。 – Spence 2011-04-04 05:11:51

    相关问题