您好我有以下问题。
我正在使用eclipse运行Java Web程序,我正在使用JPA进行sql事务。对于程序执行的特定表,插入发生异常并且事务被回滚。从这一刻起,我无法从管理工作室做任何事情。 我试图从Microsoft sql管理工作室运行一个简单的查询(从表中选择*),但它始终处于等待Saying"执行查询"。其他表工作正常。我使用了活动监视器,对于这个查询,它说
Wait Type = "LCK_M_IS"
Wait Resource = "objectlock lockPartition=0 objid=612405451 subresource=FULL dbid=34 id=lock89b2d280 mode=X associatedObjectId=612405451 -2 16 MY_SERVER_CODE internal "
BlockedBy = "-2"
杀死所有连接,关闭程序,重启windows doenst似乎解决了问题。 BlockedBy 字段应该向我显示阻止我查询的sid,但我找不到任何关于-2的内容 有什么帮助吗?
答案 0 :(得分:0)
Paul Randal在这里处理了这个问题:Disaster recovery 101: dealing with negative SPIDS (-2 and -3)
SPID -2是孤立的DTC交易。延期交易是无法完全恢复交易的交易 一个I / O错误或总文件系统问题,如不可用的文件
以下是处理负差距的步骤
在查询下方运行
select request_owner_guid as [UoW ID]
from sys.dm_tran_locks where
request_session_id = -2
然后使用下面的杀人
kill {UoW ID}
参考文献:
http://www.eraofdata.com/sql-server/troubleshooting-sql-server/orphaned-msdtc-transactions-2-spids/