日期:2014-05-17  浏览次数:20838 次

tomcat作为windows服务的参数配置,特别是PermSize的设置
当tomcat用startup.bat启动的时候的参数设置网上说的比较多,这里就不再描述。

当tomcat作为windows的系统服务的时候,网上找了很多相关的文章,都没有比较全面的参数设置方法,一般就说明了一下xms和xmx的设置,都没有提供其他方面参数的说明,不够实用。经过对apache下的procrun的研究和多次试用,总算清楚了一般参数的设置方法。其实tomcat5.exe本身已经包含有procrun的功能,这就是很多人在网上找不到procrun.exe文件下载的原因。Tomcat5w是一个监控和配置Tomcat服务的图形界面应用程序。
procrun可以参考:http://commons.apache.org/daemon/procrun.html
注:这里用tomcat5作为例子,应该同样适用于tomcat6.

这里不使用注册表,我们用tomcat提供的gui工具来设置。
1、在命令行下执行:tomcat5w.exe //ES//TomcatService
    其中,TomcatService就是你加入windows服务的名称。这样,在windows的任务栏就会出现一个tomcat的服务管理器,图标如下。




2、打开tomcat服务管理器的java页,如

在Java Options里面输入需要设置的参数,如设置permsize的内存
-XX:PermSize=64M
-XX:MaxPermSize=192m
-XX:ReservedCodeCacheSize=48m

还有一个新参数,修改tomcat默认的时区。
-Duser.timezone=GMT+08


注:每一行后面都不能有空格。
同样,我们也可以在注册表中进行修改,HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\TestService\Parameters\Java





--------------------------------------------


附:
Tomcat5.exe 服务程序
命令行选项
每一个命令行指令都形如//XX//ServiceName

可用的命令行选项如下:

The ServiceName is the name of the executable without exe sufix, meaning Tomcat5
//TS// 控制台应用程序模式运行服务,这是缺省的操作。在没有提供任何选项开关的时候,它被调用。服务名是执行文件没有exe后缀的部分,如Tomat5。
//RS// Run Service的缩写,运行服务,在服务管理器(Sevices.msc)中启动服务的时候被调用。
//SS// Stop Service的缩写,停止服务,在服务管理器中停止服务时被调用。
//US// Update Service的缩写,更新服务参数。
//IS// Install service 的缩写,安装服务 。
//DS// Delete service的缩写,删除服务,如果服务正在运行,首先删除服务。

命令行参数
每一个命令行参数以“--”开头。如果命令行以“++”为前缀,则它的值附加到存在的选项上。如果存在和命令行参数有同样的名字,但是以PR_开头的环境变量,它将被优先使用。例如:
set PR_CLASSPATH=xx.jar
等同于
--Classpath=xx.jar
作为命令行参数。

参数名 缺省值 描述
--Description  服务名描述 (最多1024个字符)
--DisplayName ServiceName 服务显示名称
--Install procrun.exe //RS//ServiceName 安装服务
--Startup  manual Service 服务启动模式,可以是自动或者手动,值分别为:auto和manual
--DependsOn  列举此服务依赖的所有服务. 被依赖的服务用#或者;分隔。
--Environment  列决提供给服务使用的环境变量,形如key=value。多个环境变量之间用#或者;分隔。
--User  运行服务使用的用户账号。 只有在运行于没有“作为服务登录”权限下的账户中使用StartMode java 或者作为服务的exe可运行程序选项的情况下才被使用。
--Password  --User参数中用户的密码
--JavaHome JAVA_HOME 定义了JAVA_HOME环境变量时,设置一个不同的JAVA_HOME环境变量
--Jvm auto 用auto或指定jvm.dll的全路径。这里可以使用环境变量表达式。
--JvmOptions -Xrs  列举形如-D 或 -X 的开关传递给JVM虚拟机。多个选项开关之间用#或者;分隔。
--Classpath  设置Java的ClassPath环境变量。
--JvmMs  设置初始使用的内存池容量,单位为MB。
--JvmMx  设置最大使用的内存池容量,单位为MB。
--JvmSs  线程堆栈容量,单位为KB
--StartImage  要被运行的可执行文件
--StartPath  开始运行可执行文件的工作路径
--StartClass  启动时使用的类
--StartParams  列决要传递给StartImage 或 StartClass的参数。多个参数之间用#或者;分隔。
--StartMethod Main 启动服务调用的方法,如果不是main,这里写上方法名
--StartMode executable 可以是jvm、java或exe 之一
--StopImage  停止服务调用的可执行文件
--StopPath  停止服务执行的文件的工作路径
--StopClass  停止服务调用的类
--StopParams  列决要传递给 StopImage 或 StopClass 的参数。多个参数之间用#或者;分隔。
--StopMethod Main 停止服务调用的方法,如果不是main,这里写上方法名
--StopMode executable 可以是jvm、java或exe 之一
--StopTimeout No Timeout 定义一个服务顺利退出的延时,单位为秒。
--LogPath 定义日志路径
--LogPrefix jakarta_service 定义日志文件名前缀
--LogLevel INFO 定义日志等级,可选值:error, info, warn或debug
--StdOutput  重定向stdout文件名
--StdError  重定向Stderr文件名

安装服务
手动安装服务最安全的方法就是使用service.bat脚本。

使用service.bat安装名字为'Tomcat5'的服务
C:\> service.bat install Tomcat5

如果使用tomcat5.exe安装名字为'Tomcat5'的服务,你需要使用//IS//参数。
C:\> tomcat5 //IS//Tomcat5 --DisplayName="Apache Tomcat 5"  --Install="C:\Program Files\Tomcat\bin\tomcat5.exe" --Jvm=auto --StartMode=jvm --StopMode=jvm --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start --StopClass=org.apac