こんにちは私は、呼び出し元のコードに保留中のトランザクションがある場合、データベースからの読み取りに問題があります。このように:IsolationLevel.ReadUncommittedブロッキングSQL Server 2008への別の接続での読み取り
f1() {
DbTransaction t = Connection1.BeginTransaction(IsolationLevel.ReadUncommitted);
...
f2();
...
t.Commit();
}
f2() {
Connection2.Execute("SELECT...");
}
f2()を呼び出すとタイムアウト例外が発生します。
私はIsolationLevel
がdbへの読み取りアクセスを許可すると考えていたので、その動作は私にとって驚くべきことでした。トランザクションをf1()
から削除すると、問題は消えます。
私はこれについてコメントしてくれてありがとう、この問題を解決する方法を教えてください。私は取引を維持したいと思います!
(Visual Studioの2010のC#、.NET 4.0、SQL Server 2008の互換性レベル80)
コミットされていないデータを読み取るようにconnection1に指示しました。あなたはそれを接続2に話していません。 – BNL