SqlConnection.ClearPool
トランザクション内で使用される接続を引数として渡す場合(たとえば、を使用する場合)の動作はどうなりSystem.Transactions.TransactionScope
ますか?
たとえば、このスニペットでは
using(var tx=new System.Transactions.TransactionScope())
{
var sqlConn=new System.Data.SqlClient.SqlConnection(...);
/*do something with connection*/
System.Data.SqlClient.SqlConnection.ClearPool(sqlConn);
tx.Complete();
}
呼び出しで、ClearPool
(トランザクションに関係なく)同じ接続文字列ですべての接続をクリアしますか、それとも(トランザクションに「関連付けられている」ため)渡した接続のみを閉じますか?
インターネットで検索しましたが、何も見つかりませんでした。MSDN(こことここ)から、トランザクションなしの動作は明らかです。さらに、トランザクションに参加している場合、接続プールは、そのトランザクションで以前に使用した接続(まだ存在する場合)を提供しようとすることを理解しています。ClearPool
しかし、トランザクションで使用される接続で呼び出されたときの動作は私にはわかりません。