DB2 データベースを使用するアプリケーションのクライアント・リルートの構成

DB2® データベースを使用するエンタープライズ・アプリケーションをクライアント・リルート・フィーチャーを使用して構成することで、 通信が失われてもリカバリーするようにでき、アプリケーションは最小限の中断で続行できるようになります。リルート機能は連続稼働をサポートするための中核機能ですが、 リルートが可能なのは、アプリケーション・サーバー接続に対して指定された代替ロケーションがある場合のみです。

始める前に

このタスクでは、以下のことを前提としています。

  • アプリケーションが接続する先の DB2 データ・ソースで以下が実行されている。
    • DB2 for z/OS® バージョン 10.1 以降
    • DB2 Database for Linux, UNIX, and Windows バージョン 9.7 以降
  • DB2 データベースを、冗長セットアップで構成済みであるか、障害時に DB2 サーバーをスタンバイ・ノードにできるように構成済みである。

このタスクについて

クライアント・リルートを使用して、1 次データベース・サーバーへの接続に障害が起こった場合に DB2 が 代替サーバーに関する情報を提供するようにできます。

クライアント・サイドでの構成がなくても、DB2 サーバー上でクライアント・リルート機能が有効にされていれば、 DB2 用 Java™ Common Connectivity (JCC) Java Database Connectivity (JDBC) ドライバーは、 DB2 サーバーへの初期接続を行うときにクライアント・リルート機能をサポートします。1 つ以上の代替サーバーが構成されている DB2 サーバーに JCC JDBC ドライバーが接続すると、 1 次サーバーは代替サーバーに関する情報を JCC JDBC ドライバーに送信します。1 次サーバーへの接続で障害が起こった場合、 JCC JDBC ドライバーは代替サーバーへ接続をリルートできます。ただし、アプリケーション・サーバー・プロセスが異常終了した場合は、 代替サーバー情報は失われるため、クライアントはもう一度 1 次サーバーに接続する必要があります。クライアントが 1 次サーバーへの初期接続を確立できない場合、 クライアントは代替サーバーの情報を持っていないため、リルートできません。

この問題を解決するには、アプリケーション・サーバー の DB2 データ・ ソースを、「代替サーバー名」および「代替ポート番号」フィールド、または clientRerouteAlternateServerName および clientRerouteAlternatePortNumber データ・ソース・カスタム・プロパティーを使用して構成することで、初期接続の試行時でもクライアント・リルートをサポートできます。 JDBC ドライバーは、1 次 DB2 サーバーに接続できない場合、クライアント・ リルートに必要な情報が既に示されているので、代替サーバーへの 接続をリルートすることができます。

重要: データ・ソース・カスタム・プロパティー enableClientAffinitiesList は、clientRerouteAlternateServerName および clientRerouteAlternatePortNumber プロパティーのセマンティクスを変更します。

接続がリルートされ、JCC JDBC ドライバーが代替 DB2 サーバーに接続されると、 その代替サーバーはそれ自体の代替サーバーについての情報を JCC JDBC ドライバーに送信します。そうすると、JCC JDBC ドライバーは、 その代替 DB2 サーバーが利用できなくなった場合に接続をさらにリルートするために必要な情報を持っている状態になります。元は代替サーバーだったサーバーが今度は 1 次サーバーになり、 新しい代替サーバーが設定されます。しかし、1 次サーバーと代替サーバーのこの新しい状態を JCC JDBC ドライバーはもう保持しません。アプリケーション・サーバーで障害が起こって再始動されると、 JCC JDBC ドライバーは元のサーバー構成から開始しなければならず、もともと 1 次サーバーと見なされていたサーバーへの接続を試みます。

以下の DB2 構成可能環境で、自動クライアント・リルート・フィーチャーを使用できます。

手順

  1. server.xml ファイル内で以下のプロパティーを指定して DB2 データ・ソースを定義します。
    • clientRerouteAlternateServerName
      • 有効な値のタイプ:
        • ドメイン・ネーム (例: www.ibm.com)
        • IP アドレス (IPv4 および IPv6) (例: 23.72.11.219)
      • 複数の値のフォーマット:
        • コンマ区切り (例: host1, host2, host3)
        • スペース区切り (例: host1 host2 host3)
      • 順序の重み:
        • 指定されるホスト名の順序は、JCC JDBC ドライバーが次に利用可能な接続先サーバーを探すときに使用する順序です。
    • clientRerouteAlternatePortNumber
      • 有効な値のタイプ:
        • ポート番号を表す整数 (例: 50000)
      • 複数の値のフォーマット:
        • コンマ区切り (例: port1, port2, port3)
        • スペース区切り (例: port1 port2 port3)
      • 順序の重み:
        • 指定されるポートの順序は、関連付けられたサーバーの順序と一致していなければなりません。
  2. (オプション) 以下のプロパティーのいずれかまたは両方を追加できます。
    • retryIntervalForClientReroute

      このプロパティーは、 JCC JDBC ドライバーが接続の確立を試行する間隔 (秒数) を定義します。

      値が指定されていない場合、デフォルトの動作が使用されます。詳しくは、『JDBC および SQL のサポート』を参照してください。

    • maxRetriesForClientReroute

      このプロパティーは、 JCC JDBC ドライバーが次のサーバーに接続する前にサーバーへの接続を再試行する回数を定義します。このプロパティーは、 RetryIntervalForClientReroute プロパティーが設定されている場合のみ使用されます。

      値が指定されていない場合、デフォルトの動作が使用されます。詳しくは、『JDBC および SQL のサポート』を参照してください。

<dataSource id="DefaultDataSource"jndiName="jdbc/db2">
     <properties.db2.jcc 
        databaseName="sampleDatabase"
        driverType="4"
        serverName="host"
        portNumber="50000"
        clientRerouteAlternateServerName="host01, host02, host03"
        clientRerouteAlternatePortNumber="50000, 50005, 50000"
        retryIntervalForClientReroute="2"
        maxRetriesForClientReroute="3" />
 ...
</dataSource>
注: ポートとホストの両方で同じ数の項目を指定するように注意してください。 同数でないと、警告が表示され、クライアント・リルートは有効になりません。

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_config_reroute_db2.html