2

MSDTC と Oracle を使用して問題が発生しています。これは .net アプリケーションであり、TransactionScope クラスを使用してトランザクションを制御しています。

問題は、トランザクションがロールバックされた場合 (scope.Complete を呼び出さずに scope.Dispose が呼び出された場合)、ロックされたレコードを解放せずに長時間「中止」状態のままになることがあります。トランザクションが "Aborting" 状態のままであっても、トランザクションを中止するために Dispose が呼び出されると、すぐに戻るため、スレッドがスタックすることはありません。

トランザクションがこのように動作し、中止が呼び出された後にロックを保持する原因を知っている人はいますか?

ありがとう

4

1 に答える 1

1

Microsoft Data Provider for Oracleを使用する場合、分散トランザクションの使用に関する既知の問題があります。

使用している場合は、ODP.NETプロバイダーに切り替えてみてください。これにより、トランザクションの問題が修正されます。

于 2008-10-10T21:14:23.153 に答える