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.