非 Java アプリケーションの Sysplex ワークロード・バランシングと自動クライアント・リルートの構成
高可用性サポートを構成するために、Sysplex ワークロード・バランシング・フィーチャーと自動クライアント・リルート・フィーチャーを共に構成することができます。Sysplex ワークロード・バランシング・フィーチャーを使用するようにクライアントを構成すると、デフォルトで、自動クライアント・リルート・フィーチャーも有効になります。自動クライアント・リルート・フィーチャーが Sysplex ワークロード・バランシング・フィーチャーと共に有効にされた場合は、自動クライアント・リルート操作を微調整する場合を除き、自動クライアント・リルートに関連するキーワード値を変更する必要はありません。
- CLI および組み込み SQL アプリケーションの場合は、QueryTimeout キーワードを、保証されている必須応答時間より小さい値に設定します。
- .NET アプリケーションの場合は、CommandTimeout プロパティーを、保証されている必須応答時間より小さい値に設定します。
- IBM Data Server Client
- IBM Data Server Runtime Client
- IBM Data Server Driver Package
- IBM Data Server Driver for ODBC and CLI
表 1 に、Java アプリケーション以外のアプリケーションで Sysplex ワークロード・バランシングを使用可能にするために必要な基本構成の設定について説明します。
データ共有アクセス方式 | クライアントの設定 | 値 |
---|---|---|
グループ・アクセス | IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の <wlb> セクションの enableWLB キーワード | true: WLB フィーチャーを使用可能にするデフォルト値。 |
データベース・ホスト (ホスト)1 | データ共有グループのグループ IP アドレスまたはドメイン・ネーム。 | |
データベース・ポート (ポート)1 | DB2 ロケーション用の SQL ポート番号。 | |
データベース名 (名前)1 | インストール中に定義される DB2 ロケーション名。 | |
メンバー固有アクセス | IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の <wlb> セクションの enableWLB キーワード | true: WLB フィーチャーを使用可能にするデフォルト値。 |
データベース・ホスト (ホスト)1 | データ共有グループのグループ IP アドレスまたはドメイン・ネーム。 | |
データベース・ポート (ポート)1 | DB2 ロケーション別名用のポート番号。 | |
データベース名 (名前)1 | データ共有グループのメンバーのサブセットを表す、DB2 ロケーション別名。 |
- 使用する DB2 製品およびドライバーに応じて、接続情報は以下のいずれかのソースから取得できます。
- IBM Data Server Clientに CLI またはオープン・ソース・アプリケーションが関係するシナリオでは、以下のソースから接続情報を取得できます。
- ホスト、ポート、およびデータベースの情報がアプリケーションの接続ストリング内で提供される場合、CLI ドライバーはその情報を使用して接続を確立します。
- アプリケーションの接続ストリング内でデータベース名だけが指定されている場合、CLI ドライバーはデータベース・カタログからの情報を使用します。
- ホストおよびポート情報がアプリケーションの接続ストリングにもデータベース・カタログにも提供されていない場合、CLI ドライバーは db2cli.ini ファイル内で必要な情報を検索します。 ドライバーは、必要な情報を見つけると、それを使用して接続を確立します。
- ホストおよびポート情報がアプリケーションの接続ストリング、データベース・カタログ、または db2cli.ini ファイルのいずれにも提供されていない場合、CLI ドライバーは IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の情報を使用します。
- IBM データ・サーバー・ドライバーに CLI またはオープン・ソース・アプリケーションが関係するシナリオでは、以下のソースから接続情報を取得できます。
- ホスト、ポート、およびデータベースの情報がアプリケーションの接続ストリング内で提供される場合、CLI ドライバーはその情報を使用して接続を確立します。
- ホストおよびポート情報がアプリケーションの接続ストリングに提供されていない場合、CLI ドライバーは db2cli.ini ファイル内で必要な情報を検索します。 ドライバーは、必要な情報を見つけると、それを使用して接続を確立します。
- ホストおよびポート情報がアプリケーションの接続ストリングにも db2cli.ini ファイルにも提供されていない場合、CLI ドライバーは IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の情報を使用します。
- IBM Data Server Clientに .NET アプリケーションが関係するシナリオでは、以下のソースから接続情報を取得できます。
- ホスト、ポート、およびデータベースの情報がアプリケーションの接続ストリング内で提供される場合、.NET データ・プロバイダーはその情報を使用して接続を確立します。
- ホスト、ポート、およびデータベースの情報が .NET オブジェクト・プロパティーから提供される場合、 .NET データ・プロバイダーはその情報を使用して接続を確立します。
- アプリケーションの接続ストリングにデータベース名だけが指定されている場合、.NET データ・プロバイダーはデータベース・カタログからの情報を使用します。
- ホストおよびポート情報がアプリケーションの接続ストリング、.NET オブジェクト・プロパティー、またはデータベース・カタログのいずれにも提供されていない場合、.NET データ・プロバイダーは IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の情報を使用します。
- IBM データ・サーバー・ドライバーに .NET アプリケーションが関係するシナリオでは、以下のソースから接続情報を取得できます。
- ホスト、ポート、およびデータベースの情報がアプリケーションの接続ストリング内で提供される場合、.NET データ・プロバイダーはその情報を使用して接続を確立します。
- ホスト、ポート、およびデータベースの情報が .NET オブジェクト・プロパティーから提供される場合、 .NET データ・プロバイダーはその情報を使用して接続を確立します。
- ホストおよびポート情報がアプリケーションの接続ストリングに提供されていない場合、.NET データ・プロバイダーは IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の情報を使用します。
- IBM Data Server Clientに CLI またはオープン・ソース・アプリケーションが関係するシナリオでは、以下のソースから接続情報を取得できます。
Sysplex ワークロード・バランシングを微調整するには、追加のキーワードを使用できます。表 2 に、Java アプリケーション以外のアプリケーションの場合に追加で使用できるキーワードをリストします。
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 Sysplex ディストリビューターが使用されます。z/OS Sysplex ディストリビューターは、動的仮想 IP アドレス (VIPA) および自動 VIPA テークオーバーを使用して、Sysplex 環境内の DB2 サブシステム間で着信接続を分散します。z/OS Sysplex ワークロード・バランシング・フィーチャーにより、DB2 データ共有グループの高可用性を確保できます。
自動クライアント・リルートの動作は、IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内の構成キーワードおよびレジストリー変数を設定することにより制御できます。 表 3 のキーワードの説明は、クライアント・アフィニティーが使用可能でない場合に適用されます。 IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) が変更された場合、CLI アプリケーションは SQLReloadConfig 関数を呼び出して、<acr> セクション内のすべての代替サーバーのエントリーを妥当性検査できます。
db2dsdriver.cfg 構成ファイルの <acr> セクション内のキーワード | 値 |
---|---|
acrRetryInterval | 連続して行われる接続試行間に待機する秒数を指定します。有効な範囲は 0 から最大整数値までです。acrRetryInterval キーワードの値は、DB2_CONNRETRIES_INTERVAL レジストリー変数の値によってオーバーライドされます。 DB2_CONNRETRIES_INTERVAL レジストリー変数が設定されていない場合は、デフォルトで 0 (待機なし) に設定されます。DB2 for z/OS データ共有グループへの自動クライアント・リルートを使用可能にする場合は、デフォルト値 (待機なし) をお勧めします。 |
detectReadonlyTxn | 自動クライアント・リルート・フィーチャーが使用可能になっているときに、失敗したステートメントがトランザクション内の最初の SQL ステートメントではない場合であっても、接続が新規メンバーにシームレスにフェイルオーバーできるかどうかを指定します。detectReadonlyTxn キーワードは、新機能モード (NFM) で、自動クライアント・リルートおよび Sysplex ワークロード・バランシング・フィーチャーを使用可能にして DB2 for z/OS バージョン 11 に接続する際に指定できます。
サポートされる DB2 for z/OS サーバーに接続する場合、detectReadonlyTxn キーワードのデフォルト値は false です。 detectReadonlyTxn キーワードを true に設定すると、接続されているサーバーは、変更されるごとに特殊レジスターおよびセッション・グローバル変数の最新の値を返します。
制約事項: 反復可能読み取り (RR) または読み取り固定 (RS) 分離レベルのトランザクションで、detectReadonlyTxn キーワードを true に設定することはできません。
|
enableAcr | 自動クライアント・リルートが有効かどうかを指定します。デフォルトは true です。 |
enableSeamlessAcr | シームレス・フェイルオーバーが可能かどうかを指定します。enableAcr キーワードが true に設定されている場合、enableSeamlessAcr キーワードのデフォルトは true です。enableSeamlessACR キーワードは、グループまたはクラスター内のメンバーにのみ適用されます。DB2 for z/OS データ共有グループに対して自動クライアント・リルートを使用可能にする場合、enableSeamlessACR キーワードがデフォルト値の true に設定されていること、おアプリケーションが SQL30108N 例外を処理できることを確認する必要があります。 |
maxAcrRetries | 自動クライアント・リルートのための接続試行の最大数を指定します。 有効な範囲は 0 から最大整数値 (MAX_INT) までです。maxAcrRetries キーワードの値は、DB2_MAX_CLIENT_CONNRETRIES レジストリー変数の値によってオーバーライドされます。 DB2_MAX_CLIENT_CONNRETRIES レジストリー変数または maxAcrRetries キーワードを設定しないと、デフォルトで、サーバー・リスト内の各サーバーおよびグループ IP アドレスで 1 回の再試行が試みられます。maxAcrRetries キーワードの値を 0 に設定すると、ACR は使用不可になります。 |
表 4 にリストするレジストリー変数が、自動クライアント・リルートの再試行動作を制御します。
レジストリー変数 | 値 |
---|---|
DB2_CONNRETRIES_INTERVAL | 連続して行われる接続再試行の間の秒数を指定します。DB2_MAX_CLIENT_CONNRETRIES 変数が設定されている場合、デフォルトで 10 に設定されます。 |
DB2_MAX_CLIENT_CONNRETRIES | 自動クライアント・リルートのための接続再試行の最大数を指定します。DB2_CONNRETRIES_INTERVAL 変数が設定されている場合、デフォルトで 30 に設定されます。 |
DB2 for z/OS データ共有グループに対する接続で自動クライアント・リルートを使用可能にする場合、maxAcrRetries キーワードを設定します。 DB2_MAX_CLIENT_CONNRETRIES および DB2_CONNRETRIES_INTERVAL レジストリー変数をどちらも設定しない場合、または maxAcrRetries および acrRetryInterval キーワードをどちらも設定しない場合には、自動クライアント・リルートは試行間隔を待機することなく、 z/OS グループへの接続を最大 10 分間試行します。
- MemberConnectTimeout
- MemberConnectTimeout キーワードは、クライアント・アプリケーションをサーバー・リストの次の IP アドレスにルーティングするまで待機する秒数を指定します。DB2 for z/OS データ共有グループへの接続に対して自動クライアント・リルートを使用可能にする場合、MemberConnectTimeout キーワードを使用して、再ルーティングするまで待機する時間を管理してください。MemberConnectTimeout キーワードのデフォルト値は 1 秒です。ほとんどの場合は、デフォルト値で適切ですが、ネットワーク・タイムアウトが頻繁に発生しないように、それよりも大きい MemberConnectTimeout 値を設定しなければならない場合もあります。
- tcipipConnectionTimeout
- tcipipConnectionTimeout キーワードは、ソケットのオープン試行が失敗と見なされるまでの秒数を指定します。自動クライアント・リルートでは、このキーワードを使用しないでください。
- ConnectionTimeout
- ConnectionTimeout キーワードは、クライアント・アプリケーションが DB2 for z/OS データ共有グループへの接続確立を待機する秒数を指定します。
Sysplex ワークロード・バランシング・フィーチャーを使用する必要があるが、自動クライアント・リルート処理に関して戻されるエラーをアプリケーションが処理できない場合は、IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内で以下のキーワードを設定します。
IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内のキーワード | IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 内のセクション | 説明 | 設定する値 |
---|---|---|---|
connectionLevelLoadBalancing | <database> | 接続レベルのロード・バランシングを有効にするかどうかを指定します。 デフォルトでは、enableWLB 構成キーワードが true に設定されている場合、connectionLevelLoadBalancing キーワードは true に設定されます。そうではない場合、connectionLevelLoadBalancing キーワードのデフォルト値は false です。 | true |
enableAcr | <acr> | 自動クライアント・リルートが使用可能かどうかを指定します。CLI または .NET アプリケーションの場合、自動クライアント・リルートを使用可能にすると、シームレス・フェイルオーバーが自動的に使用可能になります。デフォルトでは、enableWLB キーワードが true に設定されている場合、enableAcr キーワードは true に設定されます。そうではない場合、enableAcr キーワードのデフォルトは false です。 アプリケーションがシームレス・フェイルオーバー例外 (SQL30108N) を処理できない場合、enableWLB キーワードが true に設定されているときは enableAcr キーワードを false に設定します。 | true |
enableAlternateGroupSeamlessACR | <acr> | グループ間のシームレス・フェイルオーバーまたは非シームレス・フェイルオーバーの動作を指定します。デフォルトは false です。このキーワードを true に設定するには、enableSeamlessACR 構成キーワードを true に設定する必要もあります。enableAlternateGroupSeamlessACR キーワードを true に設定しても、enableSeamlessACR キーワードの設定に影響はありません。 alternategroup サブセクションに指定されたサーバーとの接続が確立された場合、シームレスまたは非シームレスの動作の規則が引き続き適用されます。 | true |
enableSeamlessAcr | <acr> | シームレス・フェイルオーバーが使用可能かどうかを指定します。シームレス・フェイルオーバーは、Java、CLI、および .NET アプリケーションにのみサポートされます。デフォルトで、enableSeamlessAcr キーワードは enableAcr キーワードと同じ値に設定されます。 | true |
enableWLB | <wlb> | ワークロード・バランシングが使用可能かどうかを指定します。デフォルトでは、enableWLB キーワードは false に設定されます。 | true |