接続プールの使用
Microsoft SQL Server JDBC Driver は、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
構文を使用して、例外が発生した場合でもプールされた接続が確実に閉じられるようにします。
注意
現在 JDBC ドライバーは、接続をプールに返すとき sp_reset_connection ストアド プロシージャを呼び出しません。ただし、接続を元の状態に戻すときは、サードパーティの Java アプリケーション サーバーに依存します。