Tomcat6启动参数设置分析
??? Tomcat 服务器是一个免费开源的小型的轻量级Web 应用服务器(Servlet/JSP容器),Tomcat?6 支持最新的Servlet 2.5 和JSP 2.1 规范,技术先进、性能稳定。
??? tomcat下载地址:http://tomcat.apache.org 一般window下载zip压缩文件或exe安装程序,linux下载tar.gz压缩文件
??? 这里JAVA_HOME,CLASSPATH,Path环境变量配置不再讲述,如果是解压版的解压,安装版的就next吧,完后设置CATALINA_HOME和Path。我比较喜欢解压版的自由度大,可以用startup.bat,shutdown.bat(linux下用startup.sh,shutdown.sh)启动关闭服务器也可以用service.bat注册成windows服务启动。
??? 首先来讲第一种用startup.bat启动吧,看下startup.bat
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome:okHomeset EXECUTABLE=%CATALINA_HOME%\bin\catalina.batrem Check that target executable existsif exist "%EXECUTABLE%" goto okExec:okExecrem Get remaining unshifted command line arguments and save them in theset CMD_LINE_ARGS=:setArgsif ""%1""=="""" goto doneSetArgsset CMD_LINE_ARGS=%CMD_LINE_ARGS% %1shiftgoto setArgs:doneSetArgscall "%EXECUTABLE%" start %CMD_LINE_ARGS%
???? 如果在相应路径找到catalina.bat就把路径设置成EXECUTABLE变量,有传入参数就循环将参数放入CMD_LINE_ARGS变量,最后就调用catalina.bat并把CMD_LINE_ARGS也一起传入
??? 看下catalina.bat有这么一段注释里,说可以设置可选变量JAVA_OPTS来给jre配置参数
rem JAVA_OPTS (Optional) Java runtime options used when the "start",rem "stop", or "run" command is executed.
???? 比如可以set JAVA_OPTS=-Xms512m -Xmx512m来设置指定最大和最小的内存限制为512M
?? 还有另一种方式是通过service.bat注册成windows服务来启动,比如可以用命令service.bat install/remove tomcat6来注册和移除服务名tomcat6的服务
?? service.bat并没有用catalina.bat来做设置,下面的这段就是找到jvm并使用,这个jvm就是Java HotSpot VM下面网址有参数相关说明
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
http://www.oracle.com/technetwork/java/javase/tech/exactoptions-jsp-141536.html
?
rem Set the server jvm from JAVA_HOMEset PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dllif exist "%PR_JVM%" goto foundJvmrem Set the client jvm from JAVA_HOMEset PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dllif exist "%PR_JVM%" goto foundJvmset PR_JVM=auto:foundJvmecho Using JVM: %PR_JVM%"%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop
?? tomcat/bin/tomcat6 //IS//tomcat6 --安装tomcat6服务
?? 在:installed里有一段就是设置jvm参数的
rem Set extra parameters"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions "-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed" --StartMode jvm --StopMode jvm
???? tomcat/bin/tomcat6 //US//tomcat6 --更新tomcat6服务参数
???
比如设置指定最大和最小的内存限制为512M可以改成--JvmOptions "-Xms512M;-Xmx512M;-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed" --StartMode jvm --StopMode jvm
? 另外More extra parameters有段--JvmMs?128?--JvmMx?256要去掉,要不会覆盖前面的-Xms512M;-Xmx512M;设置
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 256
?