Entity Frameworkを使用していて、タイムアウトについていくつか質問がありました。
この次の記事http://blogs.msdn.com/b/khen1234/archive/2005/10/20/483015.aspxに よると
A client signals a query timeout to the server using an attention event. An attention
event is simply a distinct type of TDS packet a SQL Server client can send to it.
したがって、SQL Server自体(ガバナーなし)は、発行されたコマンドのタイムアウトを尊重し、タイムアウトの期限が切れた後にそれを強制終了することはできません。例として、次のクエリを取り上げます。
var x = objectContext.Employees.Select(e => e.FirstName);
クエリを発行します-クエリの完了に40秒かかり、デフォルトのコマンドタイムアウトが30秒であると仮定した場合。注意イベントはいつトリガーされますか?
A)30秒で?
B)40秒後(クエリが40秒後に戻ったとき、EFはデフォルトよりも大きいかどうかを確認し、例外をスローします)?
ここでは、コードもSqlExceptionをスローし、アテンションイベントを自動的にトリガーすると想定しています。