接続プールの使用
SQL Server 用 Microsoft JDBC ドライバー は、Java Platform, Enterprise Edition (Java EE) の接続プールをサポートします。 JDBC ドライバーは、ミドルウェア ベンダーが提供し JDBC 3.0 に準拠する接続プールの実装に参加できるように、JDBC 3.0 に必要なインターフェイスを実装しています。 Java EE アプリケーション サーバーのようなミドルウェアの多くは、準拠した接続プール機能を備えています。 JDBC ドライバーは、これらの環境でプールされた接続に参加します。
注意
JDBC ドライバーは Java EE 接続プールをサポートしますが、独自のプール実装は提供しません。 このドライバーでは、接続の管理をサードパーティの Java アプリケーション サーバーに依存しています。
解説
接続プールを実装するためのクラスは次のとおりです。
クラス | 実装 | 説明 |
---|---|---|
com.microsoft.sqlserver.jdbc. SQLServerXADataSource | javax.sql.ConnectionPoolDataSource および javax.sql.XADataSource | Java EE サーバーはすべての JDBC 3.0 プールおよび XA インターフェイスを実装するので、常に SQLServerXADataSource クラスを使用することをお勧めします。 |
com.microsoft.sqlserver.jdbc. SQLServerConnectionPoolDataSource | javax.sql.ConnectionPoolDataSource | このクラスは、Java EE アプリケーション サーバーが物理接続による接続プールを作成するための接続ファクトリです。 Java EE ベンダーの構成で、javax.sql.ConnectionPoolDataSource を実装するクラスが必要な場合は、クラス名に SQLServerConnectionPoolDataSource を指定します。 通常、代わりに SQLServerXADataSource クラスを使用することをお勧めします。このクラスはプールと XA インターフェイスの両方を実装し、多くの Java EE サーバー構成で検証されているためです。 |
JDBC のアプリケーション コードでは、プールの利点を最大限に活かすため、常に接続を明示的に閉じる必要があります。 アプリケーションが接続を明示的に閉じると、プール実装は直ちに接続を再利用することができます。 接続が開いたままの場合、他のアプリケーションはその接続を再利用することができません。 アプリケーションは、finally
構文を使用して、例外が発生した場合でもプールされた接続が確実に閉じられるようにします。
注意
サードパーティの Java 接続プール ライブラリの中には、接続プール用に上記の JDBC API が実装されていないものがあります。 そのようなライブラリでは、接続プールに戻されるときに接続を元の状態に戻すため、独自のメソッドを実装する必要があります。