调用中止后的MSDTC和Oracle事务锁定?

时间:2008-10-10 19:32:41

标签: c# oracle transactions msdtc

我在使用MSDTC和Oracle时遇到了问题。它是一个.net应用程序,我正在使用TransactionScope类来控制事务。

问题在于,有时,如果事务被回滚(在没有调用scope.Complete的情况下调用scope.Dispose),它会长时间保持“中止”状态,而不是释放锁定的记录。即使事务处于“Aborting”状态,当调用Dispose中止事务时,它会立即返回,因此线程不会卡住。

有没有人知道什么可能导致事务像这样行为并且在调用中止后保持锁定?

由于

1 个答案:

答案 0 :(得分:1)

使用Microsoft Data Provider for Oracle时,存在使用分布式事务的已知问题。

如果您正在使用它,请尝试切换到ODP.NET提供商,这将解决您的交易问题。