Java クライアントに対する Linux、UNIX、および Windows システム上の Db2 自動クライアント・リルート・サポートの構成

Linux、UNIX、および Windows システム上の Db2 データベースへの接続の場合、Java™ クライアントでの自動クライアント・リルート・サポートの構成プロセスは、非Db2 pureScale® 環境 および Db2 pureScale 環境への接続の場合と同じです。

Linux、UNIX、および Windows システム上の Db2 に接続する Java クライアント・アプリケーションの自動クライアント・リルート・サポートは、 javax.sql.DataSourcejavax.sql.ConnectionPoolDataSourcejavax.sql.XADataSource、または java.sql.DriverManager インターフェースを使用して取得された接続に対して機能します。

IBM® Data Server Driver for JDBC and SQLJ クライアントで自動クライアント・リルートを構成するには、以下のようにします。

  1. 1 次および最初の接続が失敗する場合に使用する代替の各サーバーのアドレスを指定するため、該当するプロパティーを設定します。
    • アプリケーションが接続のために DriverManager インターフェースを使用している場合、
      1. 接続 URL で使用する 1 次サーバーのサーバー名とポート番号を指定します。
      2. clientRerouteAlternateServerName および clientRerouteAlternatePortNumber の各プロパティーに、使用する代替サーバーのサーバー名とポート番号をそれぞれ設定します。
      制約事項: DriverManager インターフェースを使用して行われる接続の自動クライアント・リルート・サポートには、以下の制約事項があります。
      • 同じ URL およびプロパティーを指定して接続を作成する場合にのみ、代替サーバー情報が DriverManager 接続間で共有されます。
      • DriverManager 接続には clientRerouteServerListJNDIName プロパティーまたは clientRerouteServerListJNDIContext プロパティーを設定できません。
      • 自動クライアント・リルートはデフォルト接続 (jdbc:default:connection) には使用可能にされていません。
    • アプリケーションで接続のために DataSource インターフェースを使用している場合は、以下のいずれかまたは両方の方法を使用します。
      • DataSource のプロパティーにサーバー名とポート番号を設定します。
        1. serverName および portNumber の各プロパティーに、使用する 1 次サーバーのサーバー名とポート番号をそれぞれ設定します。
        2. clientRerouteAlternateServerName および clientRerouteAlternatePortNumber の各プロパティーに、使用する代替サーバーのサーバー名とポート番号をそれぞれ設定します。
      • DB2ClientRerouteServerList のインスタンスを使用して 1 次サーバーと代替サーバーを指定することにより、自動クライアント・リルートのための JNDI を構成します。
        1. DB2ClientRerouteServerListのインスタンスを作成します。
          DB2ClientRerouteServerList は、以下のプロパティーを持つシリアライズ可能 Java Bean です。
          プロパティー名 データ・タイプ
          com.ibm.db2.jcc.DB2ClientRerouteServerList.alternateServerName ストリング []
          com.ibm.db2.jcc.DB2ClientRerouteServerList.alternatePortNumber 整数 []
          com.ibm.db2.jcc.DB2ClientRerouteServerList.primaryServerName ストリング []
          com.ibm.db2.jcc.DB2ClientRerouteServerList.primaryPortNumber 整数 []

          getXXX および setXXX メソッドは、プロパティーごとに定義されます。

        2. com.ibm.db2.jcc.DB2ClientRerouteServerList.primaryServerName および com.ibm.db2.jcc.DB2ClientRerouteServerList.primaryPortNumber の各プロパティーに、使用する 1 次サーバーのサーバー名とポート番号をそれぞれ設定します。
        3. com.ibm.db2.jcc.DB2ClientRerouteServerList.alternateServerName および com.ibm.db2.jcc.DB2ClientRerouteServerList.alternatePortNumber の各プロパティーに、使用する代替サーバーのサーバー名とポート番号をそれぞれ設定します。
        4. DB2ClientRerouteServerList を持続的にします。
          1. DB2ClientRerouteServerList のインスタンスを JNDI レジストリーにバインドします。
          2. DB2ClientRerouteServerList オブジェクトの JNDI 名を IBM Data Server Driver for JDBC and SQLJ clientRerouteServerListJNDIName プロパティーに割り当てます。
          3. DB2ClientRerouteServerList インスタンスのバインディングおよび参照に使用される JNDI コンテキストの名前を、clientRerouteServerListJNDIContext プロパティーに割り当てます。

        DataSource が自動クライアント・リルート代替情報を保管するために JNDI を使用するように構成されている場合、DataSource の標準サーバーおよびポート・プロパティーは getConnection 要求には使用されません。 その代わりに、1 次サーバー・アドレスが一時 clientRerouteServerList 情報から取得されます。 JNDI バインドまたは検索の失敗が原因で JNDI ストアが使用できない場合、 IBM Data Server Driver for JDBC and SQLJ は、 DataSourceの標準サーバーおよびポート・プロパティーを使用して接続を試行します。 JNDI のバインドまたは検索の失敗が発生したことを示すために、警告が累積されます。

        フェイルオーバーの後:
        • IBM Data Server Driver for JDBC and SQLJ は、更新されたサーバー情報を JNDI ストアに伝搬しようとします。
        • DB2ClientRerouteServerList に指定された primaryServerName および primaryPortNumber の値が接続に使用されます。 primaryServerName が指定されていない場合は、DataSource インスタンスの serverName と portNumber の値が使用されます。

    DataSource のプロパティーを構成すると共に、自動クライアント・リルートのための JNDI を構成する場合、DataSource のプロパティーのほうが JNDI の構成よりも優先されます。

  2. プロパティーの設定により、再試行回数、再試行の時間間隔、およびサーバー・リスト・リフレッシュの頻度を制御します。

    以下のプロパティーは、自動クライアント・リルートの再試行動作を制御します。

    maxRetriesForClientReroute
    自動クライアント・リルートのための接続再試行の最大数。

    クライアント・アフィニティーのサポートが構成されておらず、maxRetriesForClientReroute も retryIntervalForClientReroute も設定されていない場合のデフォルトの動作は、接続が 10 分間試行され、その間、最初の試行からの経過時間が長くなるにつれて再試行間隔が次第に長くなる、というものです。

    クライアント・アフィニティーが構成されている場合、maxRetriesForClientReroute のデフォルトは 3 です。

    retryIntervalForClientReroute
    連続して行われる接続再試行の間の秒数。

    クライアント・アフィニティーのサポートが構成されておらず、retryIntervalForClientReroute も maxRetriesForClientReroute も設定されていない場合のデフォルトの動作は、接続が 10 分間試行され、その間、最初の試行からの経過時間が長くなるにつれて再試行間隔が次第に長くなる、というものです。

    クライアント・アフィニティーが構成されている場合、retryIntervalForClientReroute のデフォルトは 0 (待機しない) です。