非 Java アプリケーションの Sysplex ワークロード・バランシングと自動クライアント・リルートの構成

Db2® for z/OS® サーバーに直接接続する非 Java™ クライアント・アプリケーションで Sysplex ワークロード・バランシングおよび自動クライアント・リルート (ACR) を構成するには、 IBM® データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) にキーワード値を設定します。

これらのキーワードの値は、データ共有グループ (グループ・アクセスの場合) またはデータ共有グループのサブセット (グループ・サブセット・アクセスの場合) を表すアドレスへの接続を指定すると共に、および Sysplex ワークロード・バランシングおよび自動クライアント・リルートを使用可能にします。

高可用性サポートを構成するために、Sysplex ワークロード・バランシング・フィーチャーと自動クライアント・リルート・フィーチャーを共に構成することができます。 Sysplex ワークロード・バランシング・フィーチャーを使用するようにクライアントを構成すると、デフォルトで、自動クライアント・リルート・フィーチャーも有効になります。 自動クライアント・リルート・フィーチャーが Sysplex ワークロード・バランシング・フィーチャーと共に有効にされた場合は、自動クライアント・リルート操作を微調整する場合を除き、自動クライアント・リルートに関連するキーワード値を変更する必要はありません。

enableWLB キーワードを に設定することにより、ワークロード・バランシング (WLB) フィーチャーを有効にすることができます。 WLB フィーチャーを使用可能にした場合、タイムアウト値を以下のように設定して、適時に応答できるようにすることが重要です。
  • CLI および組み込み SQL アプリケーションの場合、 QueryTimeout キーワードを、保証された必要な応答時間より小さい値に設定します。
  • .NET アプリケーションの場合は、 CommandTimeout プロパティーを、保証されている必要な応答時間より小さい値に設定します。
Java クライアント以外のクライアントの場合は、Sysplex ワークロード・バランシングを利用するために、リストされているクライアントまたはクライアント・パッケージのいずれかを使用します。
  • IBM Data Server Client
  • IBM Data Server Runtime Client
  • IBM Data Server Driver Package
  • IBM Data Server Driver for ODBC and CLI
重要: Sysplex ワークロード・バランシング機能を使用して Db2 for z/OS データ共有グループへの直接接続を確立するには、 Db2 Connect サーバー製品インストール済み環境、または Db2 インストール・パスのライセンス・ディレクトリーにある Db2 Connect サーバー・ライセンス・ファイルが必要です。

表 1 は、Java アプリケーション以外のアプリケーションで Sysplex ワークロード・バランシングを有効にするために必要な基本的な構成設定について説明しています。

表 1. Java アプリケーション以外のアプリケーションで Sysplex ワークロード・バランシングを有効にするための基本設定
データ共有アクセス方式 クライアントの設定
グループ・アクセス IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) の < wlb> セクションの enableWLB キーワード true: WLB フィーチャーを使用可能にするデフォルト値。
データベース・ホスト (ホスト)1 データ共有グループのグループ IP アドレスまたはドメイン・ネーム。
データベース・ポート (port)1 Db2 ロケーション用の SQL ポート番号。
データベース名 (name)1 インストール時に定義される Db2 ロケーション名。
グループ・サブセット・アクセス IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) の < wlb> セクションの enableWLB キーワード true: WLB フィーチャーを使用可能にするデフォルト値。
データベース・ホスト (ホスト)1 データ共有グループのグループ IP アドレスまたはドメイン・ネーム。
データベース・ポート (port)1 Db2 のロケーション別名のポート番号。
データベース名 (name)1 Db2 ロケーション別名。これは、データ共有グループのメンバーのサブセットを表します。
注意: オープン・ソース・ドライバーは、 CLI ドライバーをバックグラウンドで使用します。
  1. 使用する Db2 製品およびドライバーに応じて、以下のいくつかの可能なソースのいずれかから接続情報を取得できます。
    • IBM データ・サーバー・クライアントを使用する CLI またはオープン・ソース・アプリケーションが関係するシナリオでは、以下のソースから接続情報を取得できます。
      • アプリケーションの接続ストリングにホスト、ポート、およびデータベースの情報が指定されている場合、 CLI ドライバーはその情報を使用して接続を確立します。
      • アプリケーションの接続ストリングにデータベース名のみが指定されている場合、 CLI ドライバーはデータベース・カタログからの情報を使用します。
      • アプリケーションまたはデータベース・カタログの接続ストリングにホストとポートの情報が指定されていない場合、 CLI ドライバーは db2cli.ini ファイル内で必要な情報を検索します。 ドライバーは、必要な情報を見つけると、それを使用して接続を確立します。
      • アプリケーションの接続ストリング、データベース・カタログ、または db2cli.ini ファイルにホストとポートの情報が指定されていない場合、 CLI ドライバーは IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の情報を使用します。
    • IBM データ・サーバー・ドライバーを使用する CLI またはオープン・ソース・アプリケーションが関係するシナリオでは、以下のソースから接続情報を取得できます。
      • アプリケーションの接続ストリングにホスト、ポート、およびデータベースの情報が指定されている場合、 CLI ドライバーはその情報を使用して接続を確立します。
      • アプリケーションの接続ストリングにホストとポートの情報が指定されていない場合、 CLI ドライバーは db2cli.ini ファイル内で必要な情報を検索します。 ドライバーは、必要な情報を見つけると、それを使用して接続を確立します。
      • アプリケーションの接続ストリングまたは db2cli.ini ファイルにホストとポートの情報が指定されていない場合、 CLI ドライバーは IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の情報を使用します。
    • .NET アプリケーションと IBM データ・サーバー・クライアントが関係するシナリオでは、以下のソースから接続情報を取得できます。
      • ホスト、ポート、およびデータベースの情報がアプリケーションの接続ストリング内で提供される場合、.NET データ・プロバイダーはその情報を使用して接続を確立します。
      • ホスト、ポート、およびデータベースの情報が .NET オブジェクト・プロパティーから提供される場合、 .NET データ・プロバイダーはその情報を使用して接続を確立します。
      • アプリケーションの接続ストリングにデータベース名だけが指定されている場合、.NET データ・プロバイダーはデータベース・カタログからの情報を使用します。
      • アプリケーションの接続ストリング、.NET オブジェクト・プロパティー、またはデータベース・カタログにホストおよびポート情報が指定されていない場合、.NET データ・プロバイダーは IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の情報を使用します。
    • .NET アプリケーションと IBM データ・サーバー・ドライバーが関係するシナリオでは、以下のソースから接続情報を取得できます。
      • ホスト、ポート、およびデータベースの情報がアプリケーションの接続ストリング内で提供される場合、.NET データ・プロバイダーはその情報を使用して接続を確立します。
      • ホスト、ポート、およびデータベースの情報が .NET オブジェクト・プロパティーから提供される場合、 .NET データ・プロバイダーはその情報を使用して接続を確立します。
      • アプリケーションの接続ストリングにホストとポートの情報が指定されていない場合、.NET データ・プロバイダーは IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の情報を使用します。

Sysplex ワークロード・バランシングを微調整するには、追加のキーワードを使用できます。 Java アプリケーション以外のアプリケーションの追加キーワードは、表 2 にリストされています。

表 2. Java アプリケーション以外のアプリケーションから Db2 for z/OS への直接接続のために Sysplex ワークロード・バランシングを微調整するためのプロパティー
IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内のキーワード IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) のセクション 説明
maxRefreshInterval <wlb> サーバー・リストがリフレッシュされるまでの最大経過時間を秒単位で指定します。 デフォルトは 10です。 サポートされる最小値は 0 です。
maxTransportIdleTime <wlb> アイドル・トランスポートがドロップされるまでの最大経過時間を秒単位で指定します。 デフォルトは 60です。 サポートされる最小値は 0 です。
maxTransports <wlb> リクエスターがデータ共有グループに対して行える物理接続 (またはトランスポート) の最大数を指定します。 各アプリケーション接続で、メンバーにつき最大 1 個のトランスポートを開くことができます。 例えば、6 個のメンバーから成るグループにアクセスする 25 個のアプリケーション接続は、グループに対して最大 150 個のトランスポートを開くことができます。 これは、各アプリケーション接続で 6 個のトランスポート (メンバーごとに 1 つ) を開くことができることを意味します。

maxTransports キーワードのデフォルト値は 1000です。 値 -1 は、使用中のアプリケーション接続およびメンバーの数に基づいて、トランスポートを必要なだけ使用することを指定します。

maxTransportWaitTime <wlb> トランスポートが使用可能になるのをクライアントが待機する秒数を指定します。 デフォルト値は 1です。 値 -1 の指定は、制限なしの待機時間を意味します。 サポートされる最小の待機時間は 0 です。

WLB フィーチャーが使用可能な場合、自動クライアント・リルート機能は、クライアントにおいてデフォルトで使用可能になります。 サーバーとの接続が最初に確立された時点で、クライアントは接続先のグループからサーバーのリストを取得します。 サーバー・リストには、作業を実行するキャパシティーを備えた利用可能なサーバーがすべて含まれます。 サーバー・リストには、 Db2 データ共有グループのすべてのメンバーが含まれているわけではありません。これは、作業を実行する能力を持つ使用可能なサーバーのみがリストに含まれているためです。 サーバー・リストを使用して代替サーバーに接続する場合を除き、 Db2 データ共有グループへの接続では、分散動的仮想 IP アドレスで構成された z/OS シスプレックス・ディストリビューターを使用します。 z/OS Sysplex ディストリビューターは、動的仮想 IP アドレス (VIPA) および自動 VIPA テークオーバーを使用して、Sysplex 環境内の Db2 サブシステム間で着信接続を分散します。 z/OS Sysplex ワークロード・バランシング・フィーチャーは、 Db2 データ共有グループの高可用性を確保するのに役立ちます。

自動クライアント・リルートの動作を制御するために、 IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) で構成キーワードとレジストリー変数を設定できます。 表 3 のキーワードの説明は、クライアント・アフィニティーが有効になっていない場合を対象としています。 IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) が変更された場合、 CLI アプリケーションは SQLReloadConfig 関数を呼び出して、 <acr> セクション内のすべての代替サーバーの項目を検証できます。

表 3. Java アプリケーション以外のアプリケーションから Db2 for z/OS への接続に対して Sysplex ワークロード・バランシングのみを使用可能にするためのキーワード
IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内のキーワード IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) のセクション 説明 設定する値
connectionLevelLoadBalancing <database> 接続レベルのロード・バランシングを有効にするかどうかを指定します。 デフォルトでは、 enableWLB 構成キーワードが に設定されている場合、 connectionLevelLoadBalancing キーワードは に設定されます。 それ以外の場合、 connectionLevelLoadBalancing キーワードのデフォルト値は です。 connectionLevelLoadBalancing は、Sysplex ディストリビューター IP アドレスが指定されないときに使用されます。 true
detectReadonlyTxn <acr> 自動クライアント・リルート・フィーチャーが使用可能になっているときに、失敗したステートメントがトランザクション内の最初の SQL ステートメントではない場合であっても、接続が新規メンバーにシームレスにフェイルオーバーできるかどうかを指定します。 自動クライアント・リルート機能および Sysplex ワークロード・バランシング機能を有効にして、新機能モード (NFM) で Db2 for z/OS バージョン 11 に接続するための detectReadonlyTxn キーワードを指定できます。 サポートされる Db2 for z/OS サーバーへの接続の場合、 detectReadonlyTxn キーワードのデフォルト値は false です。
detectReadonlyTxn キーワードを に設定すると、接続されたサーバーは、特殊レジスターおよびセッション・グローバル変数が変更されるたびに、それらの最新の値を戻すように強制されます。
制約事項: 反復可能読み取り (RR) または読み取り固定 (RS) 分離レベルのトランザクションでは、 detectReadonlyTxn キーワードを true に設定することはできません。
true
enableAcr <acr> 自動クライアント・リルートが使用可能かどうかを指定します。 CLI または .NET アプリケーションの場合、自動クライアント・リルートを有効にすると、シームレス・フェイルオーバーが自動的に有効になります。 デフォルトでは、 enableWLB キーワードが に設定されている場合、 enableAcr キーワードは に設定されます。 それ以外の場合、enableAcr キーワードのデフォルトは です。 アプリケーションがシームレス・フェイルオーバー例外 (SQL30108N) を処理できない場合、 enableWLB キーワードを に設定するには、 enableAcr キーワードを に設定します。 true
enableAlternateGroupSeamlessACR <acr> グループ間のシームレス・フェイルオーバーまたは非シームレス・フェイルオーバーの動作を指定します。 デフォルトは falseです。 このキーワードを に設定するには、 enableSeamlessACR 構成キーワードも に設定する必要があります。 enableAlternateGroupSeamlessACR キーワードを に設定しても、 enableSeamlessACR キーワードの設定には影響しません。 alternategroup サブセクションでサーバーへの接続が確立されている場合、シームレスまたは非シームレスの動作に関する規則が引き続き適用されます。 true
enableSeamlessAcr <acr> シームレス・フェイルオーバーが使用可能かどうかを指定します。 シームレス・フェイルオーバーは、Java、 CLI、および .NET アプリケーションでのみサポートされます。 デフォルトで、enableSeamlessAcr キーワードは enableAcr キーワードと同じ値に設定されます。 true
enableSeamlessFailoverErrorCodes <acr> CLI ドライバーが SQL30108N、 SQL20542Nなどの非シームレス・エラーを通信エラー SQL30081Nにマップするかどうかを指定します。 プロパティー値が false に設定されていて、実行中に非シームレス・エラーが発生した場合、ドライバーは通信エラー SQL30081N をアプリケーションに送信します。 この新しい動作は、 enableWLB オプションが true に設定されており、サーバーのタイプが Db2 for Linux、Unix、および Windows、または Db2 for z/OSである場合に見られます。 enableSeamlessFailoverErrorCodes プロパティーが trueに設定されている場合、非シームレス・フェイルオーバーが発生すると、アプリケーションはシームレス・エラー・コード (SQL30108N、 SQL20542N) を受け取ります。 デフォルトでは、 enableSeamlessFailoverErrorCodes プロパティーは Db2 サーバーでは true に設定され、 Db2 for z/OS サーバーでは false に設定されます。 true
enableWLB <wlb> ワークロード・バランシングが使用可能かどうかを指定します。 デフォルトでは、 enableWLB キーワードは に設定されます。 true
CLI、OLE DB、 ADO.NET、および組み込み SQL アプリケーションには、以下の 3 つの接続タイムアウト・キーワードがあります。これらは、 IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) で設定できます。
tcpipConnectTimeout
tcpipConnectTimeout キーワードは、ソケットのオープンの試行が失敗するまでの秒数を指定します。 自動クライアント・リルートでは、このキーワードを使用しないでください。
ConnectionTimeout
ConnectionTimeout キーワードは、 Db2 for z/OS データ共有グループへの接続が確立されるのをクライアント・アプリケーションが待機する秒数を指定します。
ConnectionTimeout キーワード設定は、 tcpipConnectTimeout キーワード設定よりも優先されます。

Sysplex ワークロード・バランシング・フィーチャーを使用する必要があるが、自動クライアント・リルート処理で返されたエラーをアプリケーションで処理できない場合は、 IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) で以下のキーワードを設定します。