Db2 for z/OS Sysplex ワークロード・バランシングおよび自動クライアント・リルートを非 Java クライアント・アプリケーションで使用可能にする例
Db2 for z/OS サーバーに直接接続する Java™ アプリケーション以外のアプリケーションで Sysplex ワークロード・バランシングおよび自動クライアント・リルートを使用する前に、適切な設定で db2dsdriver.cfg 構成ファイルを更新し、データ共有グループに接続する必要があります。
- z/OS 用の WLMワークロード・バランシングが効率的に機能するには、Db2 の作業を分類する必要があります。 種別は、各トランザクション内の最初の非 SET SQL ステートメントに適用されます。 以下の領域間で、作業を種別分類する必要があります。
- 許可 ID
- クライアント情報プロパティー
- ストアード・プロシージャー名
ストアード・プロシージャー名が種別に使用されるのは、トランザクション内のクライアントによって発行される最初のステートメントが SQL CALL ステートメントである場合のみです。
種別属性の完全なリストについては、 IBM® 資料で、ご使用の特定の Db2 for z/OS サーバー・バージョンの種別属性に関するトピックを検索してください。
- Db2 for z/OS、データ共用のためのセットアップ
Sysplex ワークロード・バランシング (WLB) フィーチャーが使用可能な場合、自動クライアント・リルート機能は、クライアントにおいてデフォルトで使用可能になります。 サーバーとの接続が最初に正常に確立された時点で、クライアントは接続先のグループからすべての利用可能なサーバーのリスト (サーバー・リスト) を取得します。 サーバー・リストには、作業を実行するキャパシティーを備えた利用可能なサーバーがすべて含まれます。 サーバー・リストには、作業を実行するキャパシティーを備えた利用可能なサーバーのみが含められるため、Db2 データ共有グループの全メンバーが含まれるわけではありません。 代替サーバーへの接続にサーバー・リストが使用される場合を除き、 Db2 データ共有グループへの接続では、分散動的仮想 IP アドレスで構成された z/OS シスプレックス・ディストリビューターが使用されます。 z/OS Sysplex ディストリビューターは、動的仮想 IP アドレス (VIPA) および自動 VIPA テークオーバーを使用して、Sysplex 環境内の Db2 サブシステム間で着信接続を分散します。 z/OS Sysplex フィーチャーは、 Db2 データ共有グループの高可用性を確保します。
Sysplex 分散 IP アドレスを使用している場合には、Sysplex 分散 IP に対して再試行が 1 回だけ行われます。
この例では、Sysplex および自動クライアント・リルートの高可用性サポートを利用するために、Java アプリケーション以外のクライアント・アプリケーションをセットアップする方法を示します。
- シスプレックス・サポートおよび自動クライアント・リルートの基本設定を使用して db2dsdriver.cfg ファイルを作成します。 enableWLB および enableAcr を true に設定すると、Sysplex ワークロード・バランシングと自動クライアント・リルート機能が使用可能になります。
<configuration> <dsncollection> <dsn alias="DSGROUP1" name="DSGROUP1" host="db2a.sysplex1.ibm.com" port="446"> </dsn> </dsncollection> <database name="DSGROUP1" host="db2a.sysplex1.ibm.com" port="446"> <!-- database-specific parameters --> <wlb> <!-- Enable Sysplex workload balancing to get automatic client reroute functionality --> <parameter name="enableWLB" value="true" /> </wlb> </database> </configuration>
注: キーワード enableSeamlessACR は、キーワード enableWLB が設定されている場合、デフォルトで使用可能になっています。 - データベース名 DSGROUP1 がグループ・アクセス用にセットアップされるデータ共有グループを表すと仮定します。 CLI アプリケーションでは、以下のサンプル・コードを使用してデータ共有グループに接続できます。
... SQLHDBC hDbc = SQL_NULL_HDBC; SQLRETURN rc = SQL_SUCCESS; SQLINTEGER RETCODE = 0; char *ConnStrIn = "DSN=DSGROUP1;PWD=mypass"; /* dsn matches the database name in the configuration file */ char ConnStrOut [200]; SQLSMALLINT cbConnStrOut; int i; char *token; ... /*****************************************************************/ /* Invoke SQLDriverConnect */ /*****************************************************************/ RETCODE = SQLDriverConnect (hDbc , NULL , (SQLCHAR *)ConnStrIn , strlen(ConnStrIn) , (SQLCHAR *)ConnStrOut, sizeof(ConnStrOut) , &cbConnStrOut , SQL_DRIVER_NOPROMPT); ...