how to track which transactions are hung on a SQL server
See the question and my original answer on StackOverflowYou should have a look at Transaction Related Dynamic Management Views and Functions (Transact-SQL), notably sys.dm_tran_active_transactions