JDBC 接続プールとは、特定のデータベースのための再利用可能な接続のグループです。管理コンソールでプールを作成すると、管理者は実際には特定のデータベースへの接続の項目を定義していることになります。
プールを作成するには、まず JDBC ドライバをインストールして統合する必要があります。「JDBC ドライバを統合する」を参照してください。
「接続プールを作成」ページを構築する際は、JDBC ドライバおよびデータベースベンダーに固有の特定のデータを入力する必要があります。処理を開始する前に、次の情報を集めます。
データベースベンダー名
javax.sql.DataSource (ローカルトランザクションのみ) や javax.sql.XADataSource (グローバルトランザクション) などのリソースタイプ
データソースクラス名
データベース名 (URL)、ユーザー名、およびパスワードなどの必要なプロパティー
管理コンソールのツリービュー (左側の区画) で、「リソース」ノードを展開します。
「リソース」ノードで、「JDBC」ノードを展開します。
「JDBC」ノードで、「接続プール」ノードを選択します。
「接続プール」ページで、「新規」をクリックします。
最初の「接続プールを作成」ページで、次の一般設定を指定します。
「次へ」をクリックします。
2 番目の「接続プールを作成」ページで、「データソースクラス名」フィールドの値を指定します。
JDBC ドライバに前のページで指定したリソースタイプとデータベースベンダーのデータソースクラスがある場合は、「データソースクラス名」フィールドの値が提示されます。
「次へ」をクリックします。
最後に 3 番目の「接続プールを作成」ページで、次のタスクを実行します。
「一般設定」セクションでその値が正しいことを確認します。
「プール設定」、「接続検証」フィールド、および「トランザクション遮断」セクション用に、デフォルト値を保持します。
これらの設定はあとで変更するのがもっとも便利です。「JDBC 接続プールを編集する」を参照してください。
「追加プロパティー」テーブルで、データベース名 (URL)、ユーザー名、およびパスワードなど、必要なプロパティーを追加します。
「完了」をクリックします。
create-jdbc-connection-pool
「JDBC 接続プールを編集」ページは、名前を除く既存プールのすべての設定を変更する手段を提供します。
ツリーコンポーネントで、「リソース」ノードを展開します。
「リソース」ノードで、「JDBC」ノードを展開します。
「JDBC」ノードで、「接続プール」ノードを展開します。
編集するプールのノードを選択します。
「コネクタ接続プールを編集」ページで、必要な変更を行います。
一般設定を変更します。
一般設定の値は、インストールした固有の JDBC ドライバにより異なります。これらの設定は、Java プログラミング言語で記述されたクラスやインタフェースの名前です。
パラメータ |
説明 |
---|---|
データソースクラス名 |
DataSource API、XADataSource API、あるいはその両方を実装するベンダー固有のクラス名。このクラスは JDBC ドライバにあります。 |
リソースタイプ |
選択肢には javax.sql.DataSource (ローカルトランザクションのみ)、javax.sql.XADataSource (グローバルトランザクション)、および java.sql.ConnectinPoolDataSource (ローカルトランザクション、パフォーマンス向上の可能性あり) があります。 |
プール設定を変更します。
一連の物理データベース接続はプール内にあります。アプリケーションが接続を要求すると、接続はプールから削除され、アプリケーションが接続を解放すると、接続はプールに返されます。
パラメータ |
説明 |
---|---|
初期および最小プールサイズ |
プール内の接続の最小数。この値は、プールを最初に作成したり、Application Server を起動したりするときの、プールに含まれる接続の数も指定します。 |
最大プールサイズ |
プールに含まれる接続の最大数。 |
プールサイズ変更量 |
プールのサイズが最小プールサイズに近づくと、プールサイズが一括処理で変更されます。この値は一括処理での接続の数を指定します。この値を過大に設定すると接続の再利用が遅れ、過小に設定すると効率が落ちます。 |
アイドルタイムアウト |
プールで接続がアイドル状態のままでいられる最長時間を指定します。この時間を過ぎると、接続はプールから削除されます。 |
最大待ち時間 |
接続タイムアウトになる前に接続を要求するアプリケーションが待つ時間。デフォルトの待ち時間は長いので、アプリケーションがハングアップしているように見える可能性があります。 |
接続検証設定を変更します。
オプションで、アプリケーションサーバーは接続が渡される前にそれを検証することができます。この検証により、ネットワークやデータベースサーバーに障害が発生してデータベースが利用できなくなった場合でも、アプリケーションサーバーが自動的にデータベース接続を再確立できます。接続の検証は追加オーバーヘッドとなるため、パフォーマンスに若干の影響が生じます。
パラメータ |
説明 |
---|---|
接続検証 |
必要なチェックボックスを選択して、接続検証を有効にします。 |
検証方法 |
アプリケーションサーバーは、auto-commit、metadata、および table の 3 つの方法でデータベース接続を検証できます。 auto-commit と metadata - アプリケーションサーバーは、con.getAutoCommit() メソッドと con.getMetaData() メソッドを呼び出して接続を検証します。ただし、多くの JDBC ドライバでは、これらの呼び出しの結果をキャッシュしているので、常に信頼のある検証が行われるとは限りません。呼び出しがキャッシュされるかどうかについて、ドライバベンダーに問い合わせる必要があります。 table - アプリケーションは指定したデータベース表に問い合わせます。表は実在し、アクセス可能である必要がありますが、行は必要ありません。多くの行を持つ既存の表や、頻繁にアクセスされる表を使用しないでください。 |
表名 |
「検証方法」コンボボックスで表を選択した場合は、ここでデータベース表の名前を指定します。 |
すべて障害で |
「すべての接続を閉じる」のチェックボックスを選択してある場合、1 つの接続が失敗すると、アプリケーションサーバーはプールに含まれるすべての接続を閉じ、それらを再確立します。そのチェックボックスを選択していない場合は、使用されるときにだけ個々の接続が再確立されます。 |
トランザクション遮断設定を変更します。
データベースは通常多くのユーザーが同時にアクセスするため、あるトランザクションがデータを読み込もうとするときに別のトランザクションが同じデータを更新する可能性があります。トランザクションの遮断レベルは、更新されるデータがほかのトランザクションに見える度合いを定義します。遮断レベルの詳細については、データベースベンダーのマニュアルを参照してください。
パラメータ |
説明 |
---|---|
トランザクション遮断 |
プールの接続のトランザクション遮断レベルを選択できます。指定しない場合、接続は JDBC ドライバによって設定されるデフォルトの遮断レベルがプールに適用されます。 |
遮断レベルを保証 |
遮断レベルを指定した場合にだけ適用されます。「保証」チェックボックスを選択する場合は、プールから取得されるすべての接続が同じ遮断レベルを持ちます。たとえば、最後の使用時に con.setTransactionIsolation を使って接続の遮断レベルをプログラム的に変更した場合、このメカニズムによって状態が指定された遮断レベルに戻されます。 |
プロパティーを変更します。
「追加プロパティー」テーブルで、データベース名 (URL)、ユーザー名、およびパスワードなど、必要なプロパティーを指定できます。データベースベンダーによってプロパティーが異なるため、詳細については、ベンダーのマニュアルを調べてください。
「保存」をクリックします。
データベースサーバーを起動します。
「Ping」をクリックします。
管理コンソールがデータベースに接続を試みます。エラーメッセージが表示される場合は、データベースサーバーが再起動しているかどうかを確認します。
ツリーコンポーネントで、「リソース」ノードを展開します。
「リソース」ノードで、「JDBC」ノードを展開します。
「JDBC」ノードで、「接続プール」ノードを選択します。
「接続プール」ページで、削除するプールのチェックボックスにチェックマークを付けます。
「削除」をクリックします。
delete-jdbc-connection-pool