Tomcatで複数のインスタンス


○やりたいこと
仕事でTomcatを使ってる。同じマシン上で複数のTomcatを動かしたいっていうのは良くあると思う。VMWareとか使えば?ってのは無しの方向性で。
○基本:違うポートで動作させる
まず必要なことはTomcatのフォルダをもう1つ用意して、設定ファイルserver.xmlを修正して違うポートで動作するようにするというもの。
○環境変数を変えたい
インスタンス毎に環境変数を変えたいって事もあると思う。システム独自の環境変数であったり、JNIを使ってる場合にはPATH変数を変更してdllの読み込み先を変更したりというのが考えられる。
・バッチファイル or シェルスクリプト
UNIX系の場合、起動スクリプト /etc/init.d/tomcat とかをインスタンス毎に用意して、その中で環境変数を設定すれば良いだけ。
Windowsの場合、バッチファイル(startup.bat)から起動している場合、catalina.batを修正すればそれでいいと思う。
○複数のWindowsサービスをインストール
Windowsサービスを複数インストールする場合は、それぞれ名前を変えなければいけない。
実はやり方は簡単で、service.batで引数を追加するだけ

service.bat install TomcatFoo

Windowsサービスを設定する場合、tomcat5w.exeを使うけど、デフォルト名でないTomcatのサービスの設定を変更する場合にはtomcat5w.exeにオプションを渡さなければいけない。

tomcat5w.exe //ES//TomcatFoo

引数付きのショートカットを作っておくと便利。
このページに詳しく書いてあった。他にも色んなページがあるけど。
○複数のWindowsサービス+個別の環境変数
では各Windowsサービス毎に個別の環境変数で実行したい場合は?というと、service.batを修正する必要があるみたい。
この行を

"%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop

以下のように変更

"%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop --Environment "CUSTOM_ENV=bar"

○環境
Tomcat 5.5.23

コメントを残す

メールアドレスが公開されることはありません。