ユーザー・データベースには、デプロイ後のメッセージ・フローで作成されてアクセスされるビジネス・データが入っています。 ODBC または JDBC を使用して、ブローカーからユーザー・データベースへの接続を作成する必要があります。
データベースへの ODBC の接続はブローカーによって内部で管理されるため、ODBC ドライバーで選択できる構成可能な接続プーリング・オプションは使用しないでください。
それぞれ異なるデータ・ソース名 (DSN) が同じ物理データベースに解決される場合でも、ブローカーは、メッセージ・フローで参照される DSN ごとにデータベース接続を必要とします。メッセージ・フローが整合モードで稼働している場合は、グローバルに整合されているフローに参加している DSN 用に、独立した XA 接続が 1 つずつ必要になります。
ブローカーが必要とするユーザー・データベースへの接続の数は、データベースにアクセスするメッセージ・フローのアクションに依存しています。 ユーザー・データベースにアクセスするブローカーは、それぞれのメッセージ・フロー・スレッドごとに、各データ・ソース名 (DSN) につき 1 つの接続を確立します。 同一のスレッド上の異なるノードが同じ DSN を使用する場合、同じ接続が使用されます。ただし、異なるトランザクション・モードを使用する場合は別です。この場合、別の接続が必要になります。 トランザクションの詳細は、整合されたメッセージ・フローのデータベース接続を参照してください。
通常、ブローカーは、使用する必要があるときにメッセージ・フローに接続を作成します。 しかし、ESQL ベースのデータ・ソースへの接続の場合、フローがメッセージを受け取るよりも前に初期接続を行うことで、メッセージ処理における接続の待ち時間をなくすことができます。 このオプションを設定するには、データ・ソース・ノードの「フローの開始前に接続」プロパティーを選択します。
メッセージ・フローに DatabaseInput ノードが含まれている場合は、メッセージ・フローが実行されている間、少なくとも 1 つのデータベース接続が開いたままになります。
Linux、UNIX、および Windows システムでは、以下の状況でデータベース接続が開放されます。
「フロー開始前に接続」オプションを選択して開始されたデータベース接続、またはグローバルに整合された (XA) トランザクションに関連するデータベース接続は、メッセージ・フローがアイドル状態になっても解放されません。 これらの種類の接続は、以下の状況でのみ解放されます。
以下のいずれかのイベントが発生するまで、他のすべてのデータベース接続は開いたままになります。
z/OS® では、データベースへのアクセスが 1 分間途絶すると、グローバルに整合されたメッセージ・フロー用のデータベース接続も解放されます。
mqsichangeproperties myBroker -e myExecutionGroup -o ComIbmDatabaseConnectionManager -n maxConnectionAge -v newValue
または、すべての実行グループのデフォルト時間を変更するには、次のコマンドを使用します。
mqsichangeproperties myBroker -o ComIbmDatabaseConnectionManager -n maxConnectionAge -v newValue
maxConnectionAge は秒単位で指定します。
maxConnectionAge をオプション -1 に設定した場合、実行グループまたはブローカーが停止するまで、データベース接続はまったく解放されません。自分のデータベースとして DB2® を使用する場合のデフォルトのアクションでは、データベースへの同時接続の数は、maxappls 構成パラメーターの値に制限されます。maxappls のデフォルト値は 40 です。 ブローカーに必要な接続数が maxappls の値を超過していると考えられる場合は、計算に基づいてこのパラメーターおよび関連 maxagents パラメーターを大きくして新しい値にしてください。
z/OS の場合、接続の数は、ODBC CAF (呼び出し接続機能) 接続と RRSAF (リカバリー可能リソース・サービス接続機能) のどちらを使用した場合でも変わりません。 必要な接続の数の詳細については、ブローカーに必要なデータベース接続数がわからないを参照してください。
別のデータベースを使用する場合、データベースの資料で、接続に関する情報や、該当する限定事項あるいは制限事項を調べてください。
メッセージ・フロー がアイドル状態の場合、実行グループは、「フロー開始前に接続」オプションを使用せずに開始されているデータベース接続を定期的に解放します。したがって、ブローカーによって保持される接続は、ブローカーによるそれらのリソースの現在の使用状況を反映します。 この状態では、データベース・マネージャーが静止をサポートしている場合、データベースが静止するとブローカーが応答することができます。 すべてのデータベースが静止機能をサポートしているわけではなく、すべてのデータベースが同じように静止するわけでもありません。 データベース静止については、データベースの資料を調べてください。