Pivotal Knowledge Base

フォローする

複数のクラスターに渡るクライアント接続の設定方法

適用範囲

GemFire 7 以降

目的

GemFire は、単一クライアントが異なるクラスターに存在するリージョンに接続・動作するよう構成することは可能であるが、適用すべきではないサポート対象外の設定が存在する。本記事では、そのような構成をとる場合に、どのように設定すべきかを解説する。

説明

まず、1 つのクライアントプールを用いて異なる分散システム上に存在する複数のロケーターにアクセスするような構成はテストされておらず、サポート対象外であることを強調したい。単一クライアントから 2 つの分散システムに接続するためには、各分散システムに対して個別にプールを作成し、接続先のリージョン名も異なるものに設定する必要がある。もしクライアントが異なる 2 つの分散システム上の同名のリージョンに接続する必要がある場合は、2 つの分散システムに対する接続先を変更する度に、クライアントリージョンをクローズするか削除し、プール設定を変更してクライアントリージョンを再作成する必要がある。接続先のリージョン名がそれぞれ異なる場合は、クライアントは異なるクラスター由来の各リージョンへの同時接続が可能である。

解決策

以下、全て一意の名前を持つリージョン設定から構成される単純な client-cache.xml を示す。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE client-cache PUBLIC "-//GemStone Systems, Inc.//GemFire Declarative Cache 7.0//EN" "http://www.gemstone.com/dtd/cache7_0.dtd">
<client-cache>
<pool name="CLUSTER1">
<locator port="40001" host="C1H1"/>
</pool>
<pool name="CLUSTER2">
<locator port="40001" host="C2H1"/>
</pool>
<region name="Region1C1">
<region-attributes refid="PROXY" pool-name="CLUSTER1"/>
</region>
<region name="Region1C2">
<region-attributes refid="PROXY" pool-name="CLUSTER2"/>
</region>
</client-cache>

この設定を適用することで、Region1C1 と Region1C2 が異なる分散システム上に存在しているか否かに関わらず、クライアント接続が可能である。

異なる 2 つの分散システム上に存在する 2 つの同一名のリージョンにクライアント接続する必要がある場合は、2 種類の異なる cache.xml を使用するか、コードに動的設定を行うことが必要である。ここで留意したい重要な事は、本記事の冒頭で言及したように、2 つの同一名リージョンに対して同時にクライアント接続はできないということである。

コメント

Powered by Zendesk