Java 以外のアプリケーションに対する Db2 自動クライアント・リルート・サポートの構成
Db2 データベースへの接続の場合、Java™ 以外のアプリケーションの自動クライアント・リルート・サポートの構成プロセスは、 Db2 pureScale® 環境 およびその他の環境で同じです。
自動クライアント・リルート機能はデフォルトで使用可能になります。 Db2 pureScale 環境 の Db2 pureScale インスタンス または他の環境の 1 次サーバーに接続する必要があります。
サーバーとの接続が最初に正常に確立された時点で、クライアントは接続されたサーバーから、すべての利用可能な代替サーバーのリストを取得します。このリストを、クライアントはメモリーに保管します。 最初の接続が失敗すると、クライアントは、 db2dsdriver.cfg ファイルの <acr>< acr> セクションの <alternateserverlist>< alternateserverlist> タグの下に定義されている代替サーバーのリストを検査します。 db2dsdriver.cfg ファイルの <acr>< acr> セクションに代替サーバーが定義されていない場合、サーバーへの最初の正常な接続時に、クライアントはローカル・キャッシュ・ファイル srvrlst.xmlを作成します。 クライアントは、このファイルを、サーバーの利用可能な代替サーバーのリストで更新します。 新しい接続が行われてサーバーのリストがクライアントの srvrlst.xml ファイルの内容と異なるときには常に、このファイルはリフレッシュされます。
クライアントは、 srvrlst.xml ファイルを使用して代替サーバーを見つけると、 db2diag.log ファイルにレコードを書き込みます。 このログをモニターして、初期サーバー接続が失敗する頻度を判別できます。
表 1 では、Java 以外のアプリケーションの接続を確立するための基本設定について説明します。
クライアントの設定 | Db2 pureScale 環境の値 | その他の環境の値 |
---|---|---|
データベース・ホスト (ホスト)1 | Db2 pureScale インスタンス2 のメンバーの IP アドレス。 | 1 次サーバーの IP アドレス |
データベース・ポート (port)1 | Db2 pureScale インスタンス2 のメンバーの SQL ポート番号。 | 1 次サーバーの SQL ポート番号 |
データベース名 (name)1 | データベース名 | データベース名 |
注:
|
IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) で構成キーワードまたはレジストリー変数を設定して、自動クライアント・リルートの動作を変更することができます。 自動クライアント・リルートを制御するために使用できる構成キーワードを表 2 に示します。 クライアント・アフィニティーが使用可能でない場合について、キーワードが説明されています。
db2dsdriver 構成ファイルの <acr>< acr> セクション内のエレメント | 値 |
---|---|
acrRetryInterval キーワード | 連続して行われる接続再試行の間に待機する秒数を指定します。 DB2_CONNRETRIES_INTERVAL レジストリー変数の値は、この値をオーバーライドします。 acrRetryInterval キーワードの範囲は、 0 (最大整数値 (MAX_INT )) です。 DB2_CONNRETRIES_INTERVAL レジストリー変数を設定しない場合、 acrRetryInterval キーワードのデフォルト値は待機なし (0) になります。 |
alternateserverlist キーワード | データベースへの最初の接続が失敗した場合に接続を試行する代替サーバーを識別するサーバー名とポート番号のセットを指定します。 最初の接続後、代替サーバー・リストは使用されません。 Db2 pureScale 環境では、リスト内の項目を Db2 pureScale インスタンスのメンバーにすることができます。 その他の環境では、リストに 1 次サーバーのエントリーおよび高可用性災害時リカバリー (HADR) スタンバイ・サーバーのエントリーが含まれています。 |
detectReadonlyTxn キーワード | 自動クライアント・リルート・フィーチャーが使用可能になっているときに、失敗したステートメントがトランザクション内の最初の SQL ステートメントではない場合であっても、新規メンバーへの接続がシームレスにフェイルオーバーできるかどうかを指定します。 detectReadonlyTxn キーワードは、 Db2 Cancun Release 10.5.0.4 以降のサーバーに接続している場合に有効です。 サポートされる Db2 サーバーへの接続の場合、 detectReadonlyTxn キーワードのデフォルト値は true です。 true 値に設定すると、接続されているサーバーは、特殊レジスターが変更されるごとにその現行値を返します。
制約事項: 反復可能読み取り (RR) または読み取り固定 (RS) 分離レベルのトランザクションでは、 detectReadonlyTxn キーワードを true に設定することはできません。
|
enableAcr キーワード | 自動クライアント・リルートが有効かどうかを指定します。 デフォルトは trueです。 |
enableAlternateGroupSeamlessACR キーワード | グループ間のシームレス・フェイルオーバーまたは非シームレス・フェイルオーバーの動作を指定します。 デフォルトは falseです。 このキーワードは、<alternategroup>< acr> セクションの <acr> < alternategroup> エレメントに定義する必要があります。 このキーワードを 真に設定するには、 enableSeamlessACR キーワードも 真に設定する必要があります。 enableAlternateGroupSeamlessACR キーワードを 真 に設定しても、 enableSeamlessACR キーワードの設定には影響しません。 alternategroup セクションのサーバーへの接続が正常に確立されている場合、シームレスまたは非シームレスの動作の規則が適用されたままになります。 |
enableAlternateServerListFirstConnect キーワード | データ・サーバーに対する最初の接続が失敗した場合のみ使用される代替サーバー・リストがあるかどうかを指定します。 デフォルトは falseです。 代替サーバー・リストの最初の接続の有効化 キーワードの値が 真の場合、 db2dsdriver.cfg ファイルで自動クライアント・リルートに指定したその他の設定に関係なく、シームレス・フェイルオーバーを使用する自動クライアント・リルートが暗黙的に有効になります。 この機能を使用するには、 db2dsdriver.cfg ファイル内に <alternateserverlist> < alternateserverlist> エレメントも必要です。 |
enableSeamlessAcr キーワード | シームレス・フェイルオーバーが可能かどうかを指定します。 enableAcr キーワードが 真に設定されている場合、 enableSeamlessAcr キーワードのデフォルトは 真です。 enableSeamlessACR キーワードは、グループまたはクラスター内のメンバーにのみ適用されます。 |
maxAcrRetries キーワード | 自動クライアント・リルートのための接続試行の最大数を指定します。 有効な範囲は 0 -最大整数値 (MAX_INT ) です。 DB2_MAX_CLIENT_CONNRETRIES レジストリー変数の値は、 maxAcrRetries キーワードの値をオーバーライドします。 DB2_MAX_CLIENT_CONNRETRIES レジストリー変数または maxAcrRetries キーワードを設定しない場合、デフォルトでは、接続は 10 分間再試行されます。 ただし、代替グループを定義した場合は、接続試行がデフォルトで 2 分間行われます。 maxAcrRetries キーワード値を 0 に設定すると、自動クライアント・リルートが使用不可になります。 |
db2dsdriver.cfg ファイルが変更された場合、 CLI アプリケーションは SQLReloadConfig 関数を発行して、< acr> セクション内のすべての代替サーバーの項目を検証することができます。
表 3 のレジストリー変数は、自動クライアント・リルートの再試行動作を制御します。
レジストリー変数 | 値 |
---|---|
DB2_CONNRETRIES_INTERVAL | 連続して行われる接続再試行の間の秒数。 DB2_MAX_CLIENT_CONNRETRIES レジストリー変数を設定した場合、デフォルトは 10 です。 |
DB2_MAX_CLIENT_CONNRETRIES | 自動クライアント・リルートのための接続再試行の最大数。 DB2_CONNRETRIES_INTERVAL レジストリー変数を設定した場合、デフォルトは 30 です。 |
どちらのレジストリー変数も設定せず、 maxAcrRetries キーワードと acrRetryInterval キーワードも設定しない場合、自動クライアント・リルート処理は、再試行間の待機なしで、最大 10 分間データベースへの接続を再試行します。
- tcipipConnectionTimeout
- tcipipConnectionTimeout キーワードは、ソケットのオープンの試行が失敗するまでの秒数を指定します。 自動クライアント・リルートでは、このキーワードを使用しないでください。
- ConnectionTimeout
- ConnectionTimeout キーワードは、 Db2 for z/OS® データ共有グループへの接続が確立されるのをクライアント・アプリケーションが待機する秒数を指定します。
組み込み SQL の場合は、 CLI、OLE DB、および ADO.NET アプリケーションでは、 ConnectionTimeout キーワードを設定することによって接続タイムアウト値を設定できます。 この値は、データベースへの接続が確立されるのをクライアント・アプリケーションが待機する秒数を指定します。 接続タイムアウト値を、サーバーへの接続に要する最大時間以上の値に設定する必要があります。 そうしないと、接続がタイムアウトになり、クライアント・リルートによって代替サーバーに転送される可能性があります。 例えば、通常の日にサーバーに接続するために約 10 秒かかり、回線が混雑している日に約 20 秒かかる場合、接続タイムアウト値を 20 秒以上に設定する必要があります。