非 Java クライアントに対する Db2 ワークロード・バランシング・サポートの構成

Db2 pureScale® インスタンス内の Db2 データ・サーバーへの接続の場合、デフォルトでは、非 Java クライアントで接続レベルのワークロード・バランシングが有効になっています。 トランザクション・レベルのワークロード・バランシング機能は、明示的に使用可能に設定する必要があります。

以下の表では、非 Java™ アプリケーションに対する接続レベルのワークロード・バランシング・サポートを有効にするための基本設定について説明します。

表 1. Db2 非 Java アプリケーションでの接続レベルのワークロード・バランシング・サポートを有効にするための基本設定
クライアントの設定
接続アドレス:
データベース・ホスト1 Db2 pureScale インスタンスのメンバーの IP アドレス.2
データベース・ポート1 Db2 pureScale インスタンス2 のメンバーの SQL ポート番号。
データベース名1 データベース名
注:
  1. 使用するクライアントに応じて、 接続情報は以下のいずれかのソース内で定義されます。
    • データ・サーバー・ドライバーのいずれか、 IBM® Data Server Client または IBM Data Server Runtime Clientを使用する CLI またはオープン・ソース・アプリケーションを使用している場合:
      • ホスト、ポート、およびデータベースの情報がアプリケーション内の接続ストリング内で提供される場合、Db2 はその情報を使用します。
      • ホスト、ポート、およびデータベースの情報がアプリケーション内の接続ストリング内で提供されない場合、ドライバーは db2cli.ini ファイルを使用し、この情報が db2cli.ini ファイル内で提供されている場合、Db2 はその情報を使用します。
      • ホスト、ポート、およびデータベースの情報がアプリケーション内の接続ストリングおよび db2cli.ini ファイルのどちらでも提供されない場合、Db2 ドライバーは db2dsdriver.cfg 構成ファイル内の情報を使用します。
    • .NET アプリケーション または組み込み SQL を使用するアプリケーションIBM Data Server Client または IBM Data Server Runtime Clientで使用している場合、接続情報は db2dsdriver.cfg 構成ファイルではないソースになります。 考えられるソースには、データベース・カタログ、接続ストリング、 db2cli.ini ファイル、または .NET オブジェクト・プロパティーが含まれます。
  2. また、Websphere Application Server Network Deployment やマルチホーム DNS などのディストリビューターを使用して、データベースへの初期接続を確立することもできます。
    • ディストリビューターを使用する場合は、ディストリビューターの IP アドレスおよびポート番号を 指定します。 ディストリビューターは、現在のワークロード分散を分析し、その情報を使用して、接続要求を Db2 pureScale インスタンスのいずれかのメンバーに転送します。
    • マルチホーム DNS の場合は、 Db2 pureScale インスタンスの任意のメンバーの IP アドレスとポート番号に解決できる IP アドレスとポート番号を指定します。 マルチホーム DNS の処理では、単純なラウンドロビン選択、またはメンバーのワークロード分散などの 基準に基づいてメンバーが選択されます。

db2dsdriver.cfg ファイル内の以下の構成キーワードを使用して、接続レベルのワークロード・バランシング設定を変更できます。

表 2. 接続レベルのワークロード・バランシングの動作を制御するための設定
db2dsdriver.cfg 構成ファイル内の要素 セクション
connectionLevelLoadBalancing パラメーター <database> 接続レベルのロード・バランシングを有効にするかどうかを指定します。 これはデフォルトで true です。

db2dsdriver.cfg ファイルで以下の構成キーワードを使用して、トランザクション・レベルのワークロード・バランシングを有効にし、微調整することができます。

表 3. トランザクション・レベルのワークロード・バランシングの動作を制御するための設定
db2dsdriver.cfg 構成ファイル内の要素 セクション
connectionLevelLoadBalancing パラメーター <database> トランザクション・レベルのワークロード・バランシングを使用する場合は、true に 設定する必要があります。 アクセスされるサーバーが Db2 for z/OS® サーバーでない限り、この設定はデフォルトで true になります。この場合、デフォルトは falseです。
enableSeamlessFailoverErrorCodes キーワード <acr> CLI ドライバーが非シームレス・エラー ( SQL30108N、 SQL20542Nなど) を通信エラー SQL30081Nにマップするかどうかを指定します。 プロパティー値が false に設定されていて、実行中に非シームレス・エラーが発生した場合、ドライバーは SQL30081N 通信エラーをアプリケーションに送信します。 この新しい動作は、 enableWLB プロパティーが true に設定されており、サーバーが Db2 または Db2 for z/OSである場合に見られます。 enableSeamlessFailoverErrorCodes プロパティーが trueに設定されている場合、非シームレス・フェイルオーバーが発生すると、アプリケーションはシームレス・エラー・コード (SQL30108N、 SQL20542N) を受け取ります。 enableSeamlessFailoverErrorCodes のデフォルト値は、 Db2 for z/OS の場合は falseDb2の場合は true です。
enableWLB パラメーター <wlb> トランザクション・レベルのワークロード・バランシングを有効にするかどうかを指定します。 これはデフォルトで false です。
maxTransportIdleTime <wlb> アイドル・トランスポートがドロップされるまでの最大経過時間を秒数で指定します。 デフォルトは 60 です。 最小値は 0です。
maxTransportWaitTime <wlb> トランスポートが使用可能になるのをクライアントが待機する秒数を指定します。 デフォルトは 1です。 値 -1 の指定は、制限なしの待機時間を意味します。 サポートされる最小値は 0 です。
maxTransports <wlb> Db2 pureScale インスタンスに接続するアプリケーション・プロセスごとに作成できる物理接続の最大数を指定します。デフォルトは -1 で、これは必要な数だけ設定することを意味します。
maxRefreshInterval <wlb> サーバー・リストがリフレッシュされるまでの最大経過時間を秒数で指定します。 デフォルトは 10です。 サポートされる最小値は 0 です。
CLI、OLE DB、ADO.NET、および組み込み SQL アプリケーションの場合、3 つの接続タイムアウト・キーワードがあります。これらは、 IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) で設定できます:
tcipipConnectionTimeout
tcipipConnectionTimeout キーワードは、ソケットのオープンの試行が失敗するまでの秒数を指定します。
ConnectionTimeout
ConnectionTimeout キーワードは、クライアント・アプリケーションが接続の確立を待機する秒数を指定します。
MemberConnectTimeout
MemberConnectTimeout キーワードは、クライアント・アプリケーションがサーバー・リスト内の次の IP アドレスにルーティングされるまで待機する秒数を指定します。
ConnectionTimeout キーワード設定は、 tcpipConnectTimeout キーワード設定および MemberConnectTimeout キーワード設定よりも優先されます。