【问题标题】:MSDTC and Oracle transaction locks after abort has been called?调用中止后的 MSDTC 和 Oracle 事务锁?
【发布时间】:2008-10-10 19:32:41
【问题描述】:

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

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

有谁知道什么会导致事务出现这样的行为并在调用 abort 后保留锁?

谢谢

【问题讨论】:

    标签: c# oracle transactions msdtc


    【解决方案1】:

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

    如果您正在使用它,请尝试切换到ODP.NET 提供程序,这应该可以解决您的交易问题。

    【讨论】:

    • 使用 ODP.NET 改变了行为,但没有解决问题。现在,一些事务陷入“准备”状态,实际上使调用线程处于阻塞状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多