接続プール
プロバイダーは、標準のADO.NET接続プールを実装します。 UseConnectionPoolingを設定して、プールを有効にします。次のセクションでは、それらを構成して使用する方法を示します。
プールされた接続の操作
プールされていない接続を操作するのと同じように、標準のADO.NETオブジェクトを使用して接続を取得および閉じます。ただし、この場合、取得されるCompositeConnectionオブジェクトは、接続プールが所有する物理接続のハンドルです。接続が閉じられると、接続が破棄される代わりに、ハンドルがプールに戻され、次の接続要求に使用できるようになります。
接続をプールに戻すには、接続を明示的に閉じる必要があります。
プールされた接続の作成
接続プールは、プールプロパティと永続化された一時的な値を除いて、一意の接続文字列に基づいています。次の例では、2つの異なる接続プールを使用して3つの接続をインスタンス化します。 2つの接続は、同じ接続文字列を共有するため、同じ接続プールを共有します。
C#
using (CompositeConnection connection = new CompositeConnection("Host=myHost;Domain=myDomain;DataSource=myDataSource;User=myUser;Password=myPassword")) {connection.Open();}
using (CompositeConnection connection = new CompositeConnection("PoolIdleTimeout=-1;Host=myHost;Domain=myDomain;DataSource=myDataSource;User=myUser;Password=myPassword")) {connection.Open();}
using (CompositeConnection connection = new CompositeConnection("Timeout=15;Host=myHost;Domain=myDomain;DataSource=myDataSource;User=myUser;Password=myPassword")) {connection.Open();} //spawns a new pool
VB.NET
Using (CompositeConnection connection = new CompositeConnection("Host=myHost;Domain=myDomain;DataSource=myDataSource;User=myUser;Password=myPassword"))
connection.Open()
End Using
Using (CompositeConnection connection = new CompositeConnection("PoolIdleTimeout=-1;Host=myHost;Domain=myDomain;DataSource=myDataSource;User=myUser;Password=myPassword")) //same connection pool
connection.Open()
End Using
Using (CompositeConnection connection = new CompositeConnection("Timeout=15;Host=myHost;Domain=myDomain;DataSource=myDataSource;User=myUser;Password=myPassword")) //spawns a new connection pool
connection.Open()
End Using
接続プールを閉じる
アクティブなプロセスが終了すると、接続プールは閉じられます。