[PR]

[PR]


#norelated
#contents
* はじめに [#n60ff2ad]
 最近、CPUのチップ内に処理ユニット(コア)を複数搭載したタイプも普及してきました。これにより、コア数の数以内であれば、複数のプロセスをスピードを落とす事なく処理する事が可能になりました。
 一方、Tomcatでは、mod_jkと連動させて複数のサーバーにプロセスを分散する事は以前から可能でした。ここでは、1つのサーバーで複数のTomcatプロセスを立ち上げる事により、マルチコアのCPUの能力を十分に発揮させる方法について説明します。

** 本ページの内容について [#o958e9e3]
本ページでは、設定する際に落とし穴になりそうな点、他のHPでの解説で勘違いした点を中心にまとめます。具体的な設定方法は参照先のページを確認してください。

**  環境 [#xd349109]
以下のような環境での適用例です。Linux環境でも同様の設定による動作すると思います。
- Windows XP
- Tomcat 5.5((Tomcat 6では2プロセスで動作する設定が存在するようです))
- Apache 2
- mod_jk2((mod_jk2はすでに開発がストップされ、mod_jkにマージされたようです。本構成は特殊と言えるかもしれません。mod_jkを使ったApacheとTomcatの連携は別にまとめたいと思います。))

以下の記述は、上記環境が整っている状態で、tomcatプロセスを2個走らせる手順です。
特に、httpd.confの最後に以下の1行が追記されているか確認してください。
 LoadModule jk2_module modules/mod_jk2.so

* 設定の手順 [#k1b6826a]
+server.xmlの編集
+workers2.propertyの編集
+web.xmlの編集
+2つのプロセスでtomcatを起動

** server.xmlの編集 [#mfa6cdf3]
apache2とtomcatを連携させる構成では、tomcatの待ち受けポートは8009なので、
必要な<Connector>要素は以下の部分だけです。

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" 
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
これ以外のポートは関係ないので、不要なら削除するか、コメントアウトしておきます。

** server.xmlの編集その2 [#d4c5bc38]
次に、クラスタリングを有効にするため、<Cluster>タグを有効にします。
        <!-- <=ここを削除
        <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
 ・・・・
        </Cluster>
        -->     <=ここを削除

**server.xmlの編集その3 [#z5142dde]
セッション管理を有効にするため、EngineタグにjvmRouteを追記します。
 <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
jvmRouteに設定した名称はworkers2.propertyに使います。

**server.xmlの複製 [#sd60b16c]
2つ目のプロセス用のserver.xmlとして、server2.xmlを作成します。
まずは、server.xmlのファイルをコピーし、名前をserver2.xmlとします。

**server2.xmlの編集 [#z68c61e7]
2つのプロセスで同じ設定だと動かない項目のみ、server2.xmlで編集します。
-Connectorのポートを8009から18009にする。
-ServiceのnameをCatalinaからCatalina2にする。
-EngineのnameをCatalinaからCatalina2にする。
-EngineのjvmRouteをjvm1からjvm2にする。
-ClusterのReceiverのtcplistenPortを4001から14001にする。

**workers2.propertyの編集 [#qc8d8d58]
workers2.propertyを開き以下のように追記します。
 [channel.socket:localhost:8009]
 tomcatId=jvm1  <=これを追記
 [channel.socket:localhost:18009] <=これを追記
 tomcatId=jvm2  <=これを追記

**web.xmlの編集 [#q2500672]
公開するサーブレットのWEB-INF内のweb.xmlを開きます。
最終行から2行目に、distributableを追記します。
  <distributable/>  <=これを追記
 </web-app>

**2つのTomcatプロセスの起動 [#o272092a]
コマンドプロンプトから、tomcat起動コマンドをたたきます。
このとき、2つめの起動オプションは、-config conf¥server2.xmlとします。
 startup.bat <=1つめのプロセスを起動
 startup.bat -config conf¥server2.xml <=2つめのプロセスを起動
-configオプションで指定するserver.xmlの場所は、tomcatがインストールされているフォルダからの相対パスです。

* 参考 [#ga247dc7]
+[[Tomcat5めも>http://muimi.com/j/jakarta/tomcat5/]]
+[[@IT>http://www.atmarkit.co.jp/fjava/rensai2/jspservlet03/jspsevlet03_5.html]]
+[[http://tomcat.apache.org/>http://tomcat.apache.org/]]

*コメント欄 [#c15966f2]
#comment
#pcomment_nospam(,10,avobe)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS