Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
top
top

 


コンテナレベルのセッションレプリケーションは、フェイルセーフ環境にYellowfinを導入することができるため、クラスタ内のノードに障害が発生した場合、現在Yellowfinに接続しているユーザーは、他のノードでセッションを継続することができます。これは、アプリケーションサーバレベルでのセッションレプリケーションにより実現するものであり、Yellowfinの機能ではないため、Yellowfinのコンポーネントとしてサポートをしていません。この構成では、異なるクラスタノードからの着信リクエストを均等に分散するためにロードバランサーが必要ですが、こちらの説明については割愛させていただきます。 


アプリケーションサーバに応じて、この機能の実現方法は異なります。今回の例では、Yellowfinとともに提供されるTomcatを使用して説明します。

セッションレプリケーションのセットアップは、以下の手順から構成されています。

  1. web.xmlの変更
  2. server.xmlの変更
  3. ROOT.xmlの変更

...


Tomcatのセッションレプリケーションについて、より詳細な情報は、こちらを参照してください。:http://tomcat.apache.org

 

 



セッションレプリケーションの制限

Yellowfinでセッションレプリケーション(または、任意のJava webアプリケーション)を使用する場合は、いくつかの注意点があります。セッションレプリケーションの主な欠点は、プロセスオーバーヘッドとメモリ使用量です。

...

このオーバーヘッドが、フェイスセーフ機能を追加するに値するかどうかを考慮しなくてはいけません。セッションレプリケーションが使用されていない場合にノードに障害が発生すると、ユーザーのセッションは破棄されますが、他のノードにログインをし直すことで、作業を継続することができます。

 

 



web.xmlファイルの変更

各ノードのweb.xmlファイルの「<web-app>」配下に、「<distributable/>」を追加します。例: 


Code Block
languagejava
<web-app>
      <distributable/>
      <!-- System Event and Debug classes -->
      <listener>
            <listener-class>com.hof.servlet.SysSessionListener</listener-class>
      </listener>

 

...



セッションの複製を有効にするには、web.xmlファイル内のClusterManagement servletに以下を追加します。

Code Block
languagexml
themeEclipse
<init-param>
          <param-name>SessionReplication</param-name>
          <param-value>true</param-value>
</init-param>


server.xmlファイルの変更

server.xmlファイルの「Yellowfin/appserver/conf」ディレクトリに変更が必要です。 


<host>」XMLブロック内に以下のXMLエントリーを追加します。 


Code Block
languagejava
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

...


IPアドレス「224.0.0.0」は、セッションレプリケーションメッセージが受信されるマルチキャストアドレスです。これは、変更する必要はありませんが、Linux/Unixサーバでは、このアドレスでブロードキャストを受信するために、有効なマルチキャストルートを登録しなくてはいけない場合があります。これは、コンソールから以下のコマンドを実行することで行うことができます。 


Code Block
languagejava
sudo route add -net 224.0.0.0 netmask 224.0.0.0 dev eth0

...


このシンタックスは、Linux/Unixの様々な種類により異なる可能性があります。今回の例では、「eth0」をこのルートで使用されるネットワークデバイスとして使用しています。

 

 



ROOT.xmlの変更

Yellowfin/appserver/conf/Catalina/localhost」ディレクトリ内のROOT.xmlから、以下の行を削除します。 


Code Block
languagejava
<Manager className="org.apache.catalina.session.PersistentManager" debug="0" distributable="false" saveOnRestart="false">
      <Store className="org.apache.catalina.session.FileStore" />
</Manager>

...


これらの行は、Yellowfinディスクへのセッションシリアル化を抑制するために追加されていました。

 

 



追加情報

Tomcatのセッションレプリケーション機能は、異なるバージョンでは変更になる場合があります。こちらで概説されているプロセスが機能しない場合は、TomcatのウェブサイトでYellowfinが実行されているTomcatのバージョンの、更新された資料を確認してください。

 

 

...

前項:バックグラウンドタスク

...

Column
width30%

 

...

width30%