vlambda博客
学习文章列表

IT-多tomcat自动启动(踩坑)

自动启动(windows):

apache-tomcat-7.0.34-A

1.设置环境变量(前提是java环境变量已经设置好了)

CATALINA_BASEA=E:\apache-tomcat-7.0.34-A

CATALINA_HOMEA=E:\apache-tomcat-7.0.34-A

TOMCAT_HOMEA=E:\apache-tomcat-7.0.34-A

2.更改Tomcat的 catalina.bat、startup.bat、shutdown.bat ,service.bat把上提到的三个文件里的CATALINA_HOME常量改为CATALINA_HOMEA。CATALINA_HOME  替换为 CATALINA_HOMEA 注意全部查看是否全部替换完成

3.如果没有service.bat,官网下载对应版本增加 service.bat,tomcat7.exe ,tomcat7w.exe。下载版本为apache-tomcat-xxxxxxxxx-windows-x64.zip

4.将tomcat设置为服务,cmd进入对应文件夹tomcat\bin, 执行命令  service.bat install    移除服务:service.bat uninstall

5.如果服务名冲突,修改service.bat服务名称

set SERVICE_NAME=Tomcat7_xx

set PR_DISPLAYNAME=Apache Tomcat 7_xx


一台服务器多个tomcat在4-5步骤中参考下面的步骤执行


踩坑:

同一台服务器上有多个tomcat,都注册为服务自动启动,需要注意以下问题:

A.修改service.bat的指向路径,修改tomcat7w.exe,tomcat7.exe名称

B.需要修改service.bat每个tomcat的服务名称,否则tomcat7w.exe会指向同一个tomcat服务

C.在xxx.bat中设置的内存大小变量在服务中会失效,需要重新设置,在tomcat7w.exe重新配置


具体步骤:

1.修改tomcat7w.exe,tomcat7.exe名称,将tomcat7.exe修改为tomcat7A.exe作为tomcat服务执行命令区分;tomcat7w.exe修改为tomcat7_A.exe,作为当前tomcat的服务名称,与service.bat中的服务名称保持一致。

2.修改service.bat执行命令路径,如if exist "%CATALINA_HOME%\bin\tomcat7.exe" goto okHome  将tomca7.exe改为tomcat7A.exe,指向当前tomcat

3.修改service.bat服务名称,

set SERVICE_NAME=Tomcat7 修改set SERVICE_NAME=Tomcat7_A ,该名称与tomcat7w.exe修改后的名称保持一致

set PR_DISPLAYNAME=Apache Tomcat 7 修改为set PR_DISPLAYNAME=Apache Tomcat 7_A

4.管理员双击执行tomcat7_A.exe,进入配置界面

4.1 查看General标签下的Path to executable下的路径,是否指向当前的tomcat执行路径

4.2java标签下Java Options框内增加如下内容,修改内存变量

-XX:PermSize=128M

-XX:MaxPermSize=1024m

-XX:ReservedCodeCacheSize=48m

内存大小参数根据服务器硬件需求配置

4.3java标签下Intitial memory pool;Maxinum memory pool值根据条件可以设置大些

5.在service.bat中找到下面这句:


    set "SELF=%~dp0%service.bat"

    rem Guess CATALINA_HOME if not defined

    set "CURRENT_DIR=%cd%"


在这句后面加上下局:


             set JAVA_OPTS = -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true

内存大小参数根据服务器硬件需求配置

参考链接:https://www.cnblogs.com/qlqwjy/p/8007490.html