Sep 202008
 

Tomcatのバイナリ1個で、複数のインスタンスをサービス登録してみました。
インスタンス別にCATALINA_BASE配下ディレクトリ(conf,logs,temp,webapps,work)を分けて、Tomcatが使うポート番号も変えてあげれば、バイナリは共通のまま複数インスタンス化することができます。

設定項目 デフォルト インスタンス1 インスタンス2
サービス名 Tomcat6 Tomcat6Instance1 Tomcat6Instance2
JAVA_HOME C:\Program Files\Java\jdk1.6.0_07
CATALINA_HOME C:\apache\tomcat-6.0.18
CATALINA_BASE C:\apache\tomcat-6.0.18 C:\apache\tomcat-instance1 C:\apache\tomcat-instance2
Server Componentの
port番号
8005 18005 28005
HTTP Connectorの
port番号
8080 18080 28080
AJP Connectorの
port番号
8009 18009 28009

まずは以下の手順で各種ディレクトリと設定ファイルを準備。

  • apache-tomcat-6.0.18.zipを入手し、C:\apache\tomcat-6.0.18に展開
  • C:\apache\tomcat-instance1を作成し、C:\apache\tomcat-6.0.18からconf,logs,temp,webapps,workディレクトリをコピー
  • C:\apache\tomcat-instance1\conf\server.xmlのポート番号を変更
  • C:\apache\tomcat-instance2も同様に作成

デイレクトリと設定ファイルが準備できたら、service.batコマンドで登録。

C:\apache\tomcat-6.0.18\bin>set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_07"
C:\apache\tomcat-6.0.18\bin>set CATALINA_BASE=C:\apache\tomcat-instance1
C:\apache\tomcat-6.0.18\bin>service.bat install Tomcat6Instance1
Installing the service 'Tomcat6Instance1' ...
Using CATALINA_HOME:    C:\apache\tomcat-6.0.18
Using CATALINA_BASE:    C:\apache\tomcat-instance1
Using JAVA_HOME:        "C:\Program Files\Java\jdk1.6.0_07"
Using JVM:              auto
The service 'Tomcat6Instance1' has been installed.

CATALINA_BASE環境変数を変えて、2個めのインスタンスも同様に登録します。

C:\apache\tomcat-6.0.18\bin>set CATALINA_BASE=C:\apache\tomcat-instance2
C:\apache\tomcat-6.0.18\bin>service.bat install Tomcat6Instance2
Installing the service 'Tomcat6Instance2' ...
Using CATALINA_HOME:    C:\apache\tomcat-6.0.18
Using CATALINA_BASE:    C:\apache\tomcat-Instance2
Using JAVA_HOME:        "C:\Program Files\Java\jdk1.6.0_07"
Using JVM:              auto
The service 'Tomcat6Instance2' has been installed.

今回は簡単に済ませるためにservice.batコマンドを使いましたが、tomcat6w.exeを使うともっと細かいパラメータを指定して登録することができます。登録したサービスの設定変更をおこなうことも可能です。
詳しくはApache Tomcat 6.0 – Windows service HOW-TOをご覧ください。

Sorry, the comment form is closed at this time.