コードの一部を検討してください:
static string GetUser(int id)
{
Console.WriteLine("Start get -> {0}", id);
var connb = new DB2ConnectionStringBuilder(ConfigurationManager.ConnectionStrings["DB2_USER"].ConnectionString);
connb.Pooling = true;
connb.MinPoolSize = 10;
connb.MaxPoolSize = 100;
var conn = new DB2Connection(connb.ConnectionString);
var cmd = new DB2Command("SELECT name FROM USR.USERS WHERE id = @id");
cmd.Parameters.Add("@id", id);
cmd.Connection = conn;
conn.Open();
// conn.IsConnectionFromPool <-- false
var reader = cmd.ExecuteReader();
var result = string.Empty;
while(reader.Read())
result = reader.GetString(0);
conn.Close();
conn.Dispose();
Console.WriteLine("End get <- {0} {1}", id, result);
return result;
}
このサンプルでは、IBM .NET Database ドライバーが使用されています。
接続文字列は接続プールの設定を明示的に定義しますが、IsConnectionFromPool プロパティが true になることはありません。
これは、データベース ドライバーが私の場合のプールを保持していないということですか? この場合、何らかの方法で .NET ドライバーの設定を調整する必要がありますか?