在SQL 2008 / Server 2008 R2 x64 HRESULT上使用MSDTC事务的异常:0x8004D025

时间:2011-04-04 04:25:39

标签: sql-server-2008 transactions windows-server-2008-r2 msdtc

我目前正在将应用程序升级到SQL 2008 / Server 2008 R2 x64,并且我看到了一些我在SQL 2005 / Server 2003上没有看到的奇怪行为。随机我从MSDTC获得了一个例外:{{1} }。请注意,我已启用未经身份验证的网络事务,这些事务在95%的情况下都可以正常工作。但是有些人因为这个消息而失败了。如果它是相关的,那么它是一个SQLBulkCopy对象。

我已经调查了DTC统计数据,有趣的是当事务抛出此异常时,没有中止事务,但它确实记录了一个已完成的事务。真正令人感兴趣的是远程事务管理器还创建了一个新事务(提交状态)。作为事务的一部分,第二次写入成功写入数据库,但第一次写入不是。

在排序方面,当我看到此错误时,发生了以下情况:

  1. 从表格中删除(此作品)
  2. 新行中的Bulkcopy(此操作失败,并在“WriteToServer”方法上引发异常)
  3. 创建写入的记录(这可行)。
  4. 我知道SQL和应用程序都已为远程事务配置了MSDTC,因为有些事务成功运行。知道为什么会这样,以及如何解决它?

1 个答案:

答案 0 :(得分:8)

在实践中没有亲自见过这个,但发现了这个:

来自here

  
      
  1. 确保选中“网络DTC访问”,“允许远程客户端”,   “允许入站/出站”,“启用提示”   (某些选项可能没有必要,   尝试获取您的配置)
  2.   
  3. 服务将重启
  4.   
  5. 但是如果它仍然无法工作,你可能需要重新启动你的服务器
  6.