【发布时间】:2011-04-04 04:25:39
【问题描述】:
我目前正在将应用程序升级到 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 对象。
我调查了 DTC 统计数据,有趣的是,当事务抛出此异常时,没有中止事务,但它确实记录了一个已完成的事务。真正有趣的是远程事务管理器还创建了一个新事务(状态已提交)。作为事务的一部分,有第二次写入已成功写入数据库,但第一次没有。
在排序方面,当我看到此错误时,发生了以下情况:
- 从表中删除(可行)
- 在新行中批量复制(此操作失败并且在“WriteToServer”方法上引发异常)
- 创建写入发生的记录(这有效)。
我知道 SQL 和应用程序都为远程事务配置了它们的 MSDTC,因为其中一些事务确实可以成功运行。知道为什么会发生这种情况以及如何解决吗?
【问题讨论】:
标签: sql-server-2008 transactions windows-server-2008-r2 msdtc