系统: Windows NT 6.1(内部版本 7601:Service Pack 1)(管理程序)上的 Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 开发人员版(64 位)
问题: 今天我遇到了一个工作单元 ID 为 00000000-0000-0000-0000-000000000000 的“孤立事务”(SPID -2)
我尝试执行 kill '00000000-0000-0000-0000-000000000000',但收到无法执行的消息。(对不起,我没能捕捉到确切的消息)
MS DTC 中有两个打开的事务,但它们没有设置为不确定状态,所以我无法从那里杀死它们。
最后,我通过重新启动 MS DTC 解决了这个问题。
这是一个开发系统,所以绝对可能发生任何事情导致这个。
问题: 我只是想知道是否有人看过它,并且可能对以下内容有任何见解:
A) 什么可能导致它
B) 如果有更优雅的方法来解决
KILL 命令无法终止 {00000000-0000-0000-0000-000000000000} 的 UOW,因此您无法确定下一步要做什么来摆脱它。
要用工作单元 {00000000-0000-0000-0000-000000000000} 摆脱 spid -2 你可以做一些事情,但它有副作用:
我在测试恢复数据库时遇到了这个问题。我们有一个成功恢复的数据库,但由于 {00000000-0000-0000-0000-000000000000} UOW 而在 DBCC CHECKDB 期间失败。
在那种情况下,DTC 根本没有在恢复服务器上运行,但 {00000000-0000-0000-0000-000000000000} UOW 仍然给我们造成了如上所述的问题。所以你可以说这是一个边缘案例。
使用上面的方法最终为我们解决了问题,但是如果您使用这种技术,您需要确保您没有中止正在使用的 DTC 连接。