ブローカーの JDBC プロバイダー・リソースを使用して、メッセージ・フローと入力ノードのスレッド・プールからは独立した状態でスレッド・プールを使用する動作を構成できます。
WebSphere® Message
Broker は次のような方法で JDBC 接続を管理します。
- プールされない接続:
- WebSphere Message
Broker は、JDBC 接続を必要とするメッセージ・フロー・インスタンスごとにオンデマンドで JDBC 接続を作成します。
- それぞれの JDBC 接続は、作成対象となるメッセージ・フロー・インスタンスに関連付けられます。 この関連付けは、接続が閉じるまで維持されます。
- JDBC 接続ごとに、60 秒間アイドル状態であったものは閉じられ、メッセージ・フロー・インスタンスとの関連付けもなくなります。
- メッセージ・フロー・インスタンスに関連付けられた JDBC 接続が閉じられた後、同じメッセージ・フロー・インスタンスで JDBC 接続が必要になった場合、WebSphere Message
Broker は新しい JDBC 接続をオンデマンドで作成します。
- プールされた接続:
- メッセージ・フロー・インスタンスで JDBC 接続が必要になったとき、WebSphere Message
Broker は未使用の接続をプールから割り当てます。
- プールされたすべての JDBC 接続が使用中である場合、最大プール・サイズに達していなければ、WebSphere Message
Broker はプールされた新しい JDBC 接続を作成します。 最大プール・サイズは JDBCProviders 構成可能サービス の maxConnectionPoolSize プロパティーで指定されます。
- プールされた JDBC 接続とメッセージ・フロー・インスタンスの関連付けは、接続ごとに 1 つの入力メッセージの処理に限定されます。
- メッセージ・フロー・インスタンスが 1 つの入力メッセージの処理を完了すると、JDBC 接続との関連付けが除去されて、その JDBC 接続はプールに戻されます。
- プールされた JDBC 接続ごとに、15 分間アイドル状態であったものは閉じられ、プールから除去されます。
- プールされた JDBC 接続は、DatabaseRetrieve ノードと DatabaseRoute ノードには適用されません。
JDBC 接続プールを使用すると、メッセージ・フロー・スレッド数とは無関係にデータベース・アクセスの規模を拡大/縮小できます。
JDBCProviders 構成可能サービスの maxConnectionPoolSize プロパティーをゼロ以外の整数値に設定することにより、JDBC 接続プールを作成できます。
使用可能な JDBC 接続スレッドの最大数を指定する maxConnectionPoolSize プロパティーは、実行グループ・レベルで適用されます。 値としてゼロを指定すると、デフォルトで WebSphere Message
Broker バージョン 8.0 の標準の動作 (つまり、各メッセージ・フロー・スレッドごとに 1 つの JDBC 接続が作成される、という動作) が設定されます。
同じ JDBCProviders 構成可能サービスを使用する、実行グループ内のすべてのメッセージ・フローは、1 つの接続プールを共有します。 ブローカー・リソース統計を使用すれば、JDBC 接続プールの動作をモニターできます。
maxConnectionPoolSize プロパティーの適用対象は、JavaCompute ノードの getJDBCType4Connection() API を使って取得される JDBC 接続、および Mapping ノードによって呼び出されるグラフィカル・データ・マップでのデータベース操作です。
注: maxConnectionPoolSize プロパティーは、DatabaseRetrieve ノードまたは DatabaseRoute ノードで使用される JDBC 接続には適用されません。