 |

|
Javaアプリケーションサーバのクラスタリング機能比較
|
第2回:Tomcatのクラスタ設定
著者:サンモアテック 津田 新吾 2005/10/31
|
|
|
前のページ 1 2 3 4
|
 |
クラスタリング基本動作の確認
|
さて、それでは実際にTomcatを立ち上げて見ましょう。まず"tomcat1"を立ち上げます。すると"catalina.out"の出力が表示されます。
次に"tomcat2"を立ち上げます。
"tomcat2"の"catalina.out"の出力では"tomcat1"の時とは異なり、以下の情報が追加され、"tomcat2"がメンバーシップに参加したことがわかります。
|
2005/01/05 19:01:17 org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
情報: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.XX.ZZ:4001,
192.168.XX.ZZ,4001, alive=57671]
|
 |
"tomcat1"の方の"catalina.out"にも以下のようなメッセージが出力され、こちらからもメンバーシップに"tomcat2"が加わったことがわかります。
|
2005/01/05 19:01:22 org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
情報: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.XX.YY:4
001,192.168.XX.YY,4001, alive=7]
|
 |
最後にApacheを立ち上げればクラスタ環境の設定は完了です。
|
ネットワーク切断時には注意
|
「クラスタ動作シーケンス」の項で説明したように、tomcat1がダウンした場合はそれをもう一方のtomcat2が検知して制御を移します。しかし「ネットワークケーブルが抜けた」とか「ネットワーク機器が故障した」というような場合、例えばtomcat2で処理が進んだのち、tomcat1が復旧してもフェイルオーバーはうまく働きません。
これはtomcat1とtomcat2のどちらのセッションが最新なのかを正確に判断できる仕組みがTomcatには用意されていないからです。復旧させる前にtomcat1を終了し、ケーブルを挿し直した後に起動すれば、起動時にセッションレプリケーション情報を読み込み、正常にフェイルオーバーします。
つまり一度ネットワークから切り離されたサーバでセッションのフェイルオーバーを確実に行うには、Tomcatの再起動を行う必要があります。
これはTomcatクラスタの問題といえます。将来のバージョンではこの問題を解消するために、より信頼性のある通信技術であるJGroupsをプラグインとして選択可能にするという動きがあります。
|
|
 |
Tomcatのクラスタ設定のポイント
|
それではTomcatのクラスタ設定のポイントをまとめます。
- "mod_jk.so"を入手して、コンパイルし対象ディレクトリにコピーします
- "httpd.conf"、"mod-jk.conf"、"workers.propertis"の3つの設定ファイルを変更・追加します
- "mod-jk.conf"のURLマッピングは"workers.properties"のワーカーリストの定義に合わせます
- "workers.properties"の"lbfactor"の値はmod_jk2の場合と逆で、値が大きいほうがリクエストも多く受け付けるので注意します
- "server.xml"の「Cluster」要素のコメントをはずし、有効にします
- "server.xml"の「Engine」要素のjvmRoute属性を作成し、固有のIdを指定します
表4:Tomcatクラスタの設定のポイント
|
最後に
|
ざっとTomcatのクラスタリングの概念と設定についてご説明しましたが、いかがでしたでしょうか。実際にやってみないとなかなか具体的な動きがつかめないかもしれませんので、是非一度ご自分の環境でお試しいただければわかりやすいかと思います。
次回はJBossのクラスタリングについて解説をします。
|
前のページ 1 2 3 4
|

|
|

|
著者プロフィール
株式会社サンモアテック 津田 新吾
技術開発事業部。
某電線メーカーでカーナビの経路案内・経路計算などの組込みソフトウェア開発を10年近く経験。その後現在の(株)サンモアテックに入社。以来、携帯Javaでの業務支援システムやオープンソースのエンタープライズ適用、Webサービスなど主にサントリーグループ向けの新技術開発に従事している。
|
|
|
|