Db2 クライアントによる Db2 pureScale Feature

アプリケーションで Db2 pureScale Feature を最大限に活用するには、クライアントとサーバーが特定のリリース・レベルでなければなりません。

次の表に、クライアントとサーバーでサポートされるリリース・レベルを示します。
サーバー・バージョン クライアントのバージョン 使用可能なフィーチャー
Db2 バージョン 10.5 バージョン 10.5(フィックスパック 1 以降) トランザクション・レベルおよび接続レベルのワークロード・バランシング

ワークロードに基づく自動クライアント・リルート

クライアント・アフィニティー

サーバー・フィーチャー: メンバーのサブセット化

Db2 バージョン 11.1 バージョン 10.5(フィックスパック 1 以降)

トランザクション・レベルおよび接続レベルのワークロード・バランシング

ワークロードに基づく自動クライアント・リルート

クライアント・アフィニティー

サーバー・フィーチャー: メンバーのサブセット化、メンバー・サブセットのフェイルオーバーの優先度

Db2 バージョン 11.5 バージョン 10.5(フィックスパック 1 以降) トランザクション・レベルおよび接続レベルのワークロード・バランシング

ワークロードに基づく自動クライアント・リルート

クライアント・アフィニティー

サーバー・フィーチャー: メンバーのサブセット化、メンバー・サブセットのフェイルオーバーの優先度

クライアントのフィーチャー

自動クライアント・リルート
自動クライアント・リルート (ACR) は、障害が発生したサーバーから別のサーバーにクライアント・アプリケーションをリダイレクトする Db2 サーバー・フィーチャーです。これにより、アプリケーションは最小限の中断で作業を続行できます。 自動クライアント・リルート・フィーチャーの接続フェイルオーバーは、シームレスになることも、非シームレスになることもあります。
クライアント・アフィニティー
クライアント・アフィニティーは、クライアントが接続できる メンバー の番号付きリストを提供します。 メンバーのワークロードに関する考慮事項はありません。最初の メンバー が使用不可の場合、またはクライアントが接続されていて使用不可になった場合、自動クライアント・リルート・フィーチャーはリスト内の次の メンバー への接続を試みます。
ワークロード・バランシング
自動ワークロード・バランシング (WLB) は、 Db2 pureScale データベース・サーバーから返されたサーバー・リストに含まれる メンバー ・ワークロード情報を使用して、クライアントが メンバー間でバランスの取れた方法で作業を分散できるようにします。

ワークロード・バランシングおよび自動クライアント・リルートに関する制約事項

COMMIT 操作および ROLLBACK 操作時に、 Db2 pureScale データベース・サーバーは、以下のいずれかの条件が当てはまる場合、アプリケーションがワークロード・バランシングを使用できないようにします。
  • 接続にグローバル変数が使用されている。
  • 暗号化パスワードが使用されている。
  • オープン状態の WITH HOLD カーソルが使用されている。
  • 宣言済み一時表 (DGTT) が使用されている。
  • トランスフォーム・グループが設定されている。
  • セッション許可 ID が変更された。
  • PL/SQL パッケージまたは SQL/PL モジュールが使用されている。
  • カーソル変数が使用されている。
  • シーケンス値が使用されており、Db2_ALLOW_WLB_WITH_SEQUENCES 通信変数が有効になっていない。
  • PRESERVE ROWS オプションを使用して作成された作成済み一時表 (CGTT) が使用されます。

CLI、ODBC、.NET、または JDBC API を使用するアプリケーションの場合、前述のいずれかの条件の結果としてワークロード・バランシングを使用できないと、自動クライアント・リルートは非シームレスになり、アフィニティー・フェイルバックは無効になります。

組み込み SQL を使用するアプリケーションなど、CLI、ODBC、.NET、および JDBC のいずれの API も使用しないアプリケーションの場合、ワークロード・バランシングについては、リストされている条件に加えて、動的 SQL の使用も考慮しなければなりません。 デフォルトでは、ストアード・プロシージャーかユーザー定義関数でステートメントが準備されなければ、ステートメントの準備後にこの種のアプリケーションではワークロード・バランシングは無効になります。 しかし、ステートメントが実行される前に必ず新しいトランザクションで再準備される場合、バインド操作で KEEPDYNAMIC NO オプションを指定するか、ALTER PACKAGE ステートメントで KEEP DYNAMIC NO オプションを指定して、ワークロード・バランシングを許可することができます。 CLI、ODBC、.NET、および JDBC API を使用しないアプリケーションの場合、ワークロード・バランシングが制限される条件下では、自動クライアント・リルートは必ず非シームレスになり、アフィニティー・フェイルバックは無効になります。

CLI、ODBC、.NET、または JDBC API を使用するアプリケーションの場合、動的 SQL を使用しても、ワークロード・バランシングを使用できるかどうかや、自動クライアント・リルートがシームレスか非シームレスかには影響しません。

ワークロード・バランシングでの疎結合 XA トランザクションの制約事項

疎結合 XA トランザクションでは、同じリソース・マネージャーに対して複数のブランチが開かれていると、アプリケーションがグローバル・トランザクション内でロック・タイムアウトまたはデッドロックになる可能性があります。 ロック・タイムアウトまたはデッドロックが発生するのは、グローバル・トランザクション内の複数のブランチが同じメンバーに接続している場合にのみ、データ共用メンバーがロックを共用できるためです。 アプリケーションでは、ワークロード・バランシングを使用できない場合がありますが、高可用性のためのクライアント・アフィニティーを使用することができます。