如何添加Tomcat为启动服务,随windows启动而启动

如何添加Tomcat为启动服务,随windows启动而启动,第1张

tomcat5.0, 可以用startup.bat启动, 但不能启动服务("E:/Program Files/Tomcat 5.0/bin/tomcatw.exe" //GT//Tomcat5

以前的系统可以的,但现在的系统不知出了什么问题 ?

1.我这个是zip版本的,所以里面有一个service.bat的文件,所以很简单

运行:cmd=>再到Tomcat 5.0/bin目录下运行: service install 即可.

2.如果没有service.bat文件,可以把以下内容保存为service.bat.

service.bat全文件内容:

@echo off

if "%OS%" == "Windows_NT" setlocal

rem ---------------------------------------------------------------------------

rem NT Service Install/Uninstall script

rem

rem Options

rem install Install the service using Tomcat5 as service name.

rem Service is installed using default settings.

rem remove Remove the service from the System.

rem

rem name (optional) If the second argument is present it is considered

rem to be new service name

rem

rem $Id: service.bat,v 1.5.2.2 2004/09/05 07:57:57 mturk Exp $

rem ---------------------------------------------------------------------------

rem Guess CATALINA_HOME if not defined

set CURRENT_DIR=%cd%

if not "%CATALINA_HOME%" == "" goto gotHome

set CATALINA_HOME=%cd%

if exist "%CATALINA_HOME%/bin/tomcat5.exe" goto okHome

rem CD to the upper dir

cd ..

set CATALINA_HOME=%cd%

:gotHome

if exist "%CATALINA_HOME%/bin/tomcat5.exe" goto okHome

echo The tomcat.exe was not found...

echo The CATALINA_HOME environment variable is not defined correctly.

echo This environment variable is needed to run this program

goto end

rem Make sure prerequisite environment variables are set

if not "%JAVA_HOME%" == "" goto okHome

echo The JAVA_HOME environment variable is not defined

echo This environment variable is needed to run this program

goto end

:okHome

if not "%CATALINA_BASE%" == "" goto gotBase

set CATALINA_BASE=%CATALINA_HOME%

:gotBase

set EXECUTABLE=%CATALINA_HOME%/bin/tomcat5.exe

rem Set default Service name

set SERVICE_NAME=Tomcat5

set PR_DISPLAYNAME=Apache Tomcat

if "%1" == "" goto displayUsage

if "%2" == "" goto setServiceName

set SERVICE_NAME=%2

set PR_DISPLAYNAME=Apache Tomcat %2

:setServiceName

if %1 == install goto doInstall

if %1 == remove goto doRemove

echo Unknown parameter "%1"

:displayUsage

echo

echo Usage: service.bat install/remove [service_name]

goto end

:doRemove

rem Remove the service

"%EXECUTABLE%" //DS//%SERVICE_NAME%

echo The service '%SERVICE_NAME%' has been removed

goto end

:doInstall

rem Install the service

echo Installing the service '%SERVICE_NAME%' ...

echo Using CATALINA_HOME: %CATALINA_HOME%

echo Using JAVA_HOME: %JAVA_HOME%

rem Use the environment variables as an exaple

rem Each command line option is prefixed with PR_

set PR_DESCRIPTION=Apache Tomcat Server - http://jakarta.apache.org/tomcat

set PR_INSTALL=%EXECUTABLE%

set PR_LOGPATH=%CATALINA_HOME%/logs

set PR_CLASSPATH=%JAVA_HOME%/lib/tools.jar%CATALINA_HOME%/bin/bootstrap.jar

rem Set the server jvm from JAVA_HOME

set PR_JVM=%JAVA_HOME%/jre/bin/server/jvm.dll

if exist "%PR_JVM%" goto foundJvm

rem Set the client jvm from JAVA_HOME

set PR_JVM=%JAVA_HOME%/jre/bin/client/jvm.dll

if exist "%PR_JVM%" goto foundJvm

set PR_JVM=auto

:foundJvm

echo Using JVM: %PR_JVM%

"%EXECUTABLE%"

//IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap

--StopClass org.apache.catalina.startup.Bootstrap --StartParams start

--StopParams stop

if not errorlevel 1 goto installed

echo Failed installing '%SERVICE_NAME%' service

goto end

:installed

rem Clear the environment variables. They are not needed any more.

set PR_DISPLAYNAME=

set PR_DESCRIPTION=

set PR_INSTALL=

set PR_LOGPATH=

set PR_CLASSPATH=

set PR_JVM=

rem Set extra parameters

"%EXECUTABLE%"

//US//%SERVICE_NAME% --JvmOptions

"-Dcatalina.base=%CATALINA_BASE%-Dcatalina.home=%CATALINA_HOME%-Djava.endorsed.dirs=%CATALINA_HOME%/common/endorsed"

--StartMode jvm --StopMode jvm

rem More extra parameters

set PR_STDOUTPUT=%CATALINA_HOME%/logs/stdout.log

set PR_STDERROR=%CATALINA_HOME%/logs/stderr.log

"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%/temp" --JvmMs 128 --JvmMx 256

Echo "%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%/temp" --JvmMs 128 --JvmMx 256

echo The service '%SERVICE_NAME%' has been installed.

:end

cd %CURRENT_DIR%

然后再执行1.的命令.

3.然后用: net start Tomcat 命令将服务启起来.

一般来说,很多服务都可以用以下命令来添加服务和运行服务.

添加服务:service install "服务名字"

启动服务:net start 服务名

停止服务:net stop 服务名

如: net start mysql5 即启动MySQL服务.

可以给Java虚拟机设置使用的内存,但是如果你的选择不对的话,虚拟机不会补偿。可通过命令行的方式改变虚拟机使用内存的大小。如下表所示有两个参数用来设置虚拟机使用内存的大小。

参数

描述

-Xms

JVM初始化堆的大小

-Xmx

JVM堆的最大值

这两个值的大小一般根据需要进行设置。初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。一般而言,这个参数不重要。但是有的应用程序在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。由于这种原因,我们一般把-Xms和-Xmx设为一样大,而堆的最大值受限于系统使用的物理内存。一般使用数据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。

Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。

Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'

需要把这个两个参数值调大。例如:

JAVA_OPTS='-Xms256m -Xmx512m'

表示初始化内存为256MB,可以使用的最大内存为512MB。

另外需要考虑的是Java提供的垃圾回收机制。虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。如果堆的大小很大,那么完全垃圾收集就会很慢,但是频度会降低。如果你把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。在基准测试的时候,为保证最好的性能,要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现。

如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过 3-5 秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究 垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的 80% 作为堆大小。当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。

Tomcat 5常用优化和配置

1、JDK内存优化:

Tomcat默认可以使用的内存为128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS='-Xms[初始化内存大小] -Xmx[可以使用的最大内存]

一般说来,你应该使用物理内存的 80% 作为堆大小。

2、连接器优化:

在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:

maxThreads:

Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值150。

acceptCount:

指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。

minSpareThreads:

Tomcat初始化时创建的线程数。默认值25。

maxSpareThreads:

一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值75。

enableLookups:

是否反查域名,默认值为true。为了提高处理能力,应设置为false

connnectionTimeout:

网络连接超时,默认值60000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

maxKeepAliveRequests:

保持请求数量,默认值100。

bufferSize:

输入流缓冲大小,默认值2048 bytes。

compression:

压缩传输,取值on/off/force,默认值off。

其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于*作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

3、tomcat中如何禁止和允许列目录下的文件

在{tomcat_home}/conf/web.xml中,把listings参数设置成false即可,如下:

<servlet>

...

<init-param>

<param-name>listings</param-name>

<param-value>false</param-value>

</init-param>

...

</servlet>

4、tomcat中如何禁止和允许主机或IP地址访问

<Host name="localhost" ...>

...

<Valve className="org.apache.catalina.valves.RemoteHostValve"

allow="*.mycompany.com,www.yourcompany.com"/>

<Valve className="org.apache.catalina.valves.RemoteAddrValve"

deny="192.168.1.*"/>

...

</Host>

服务器的配置

JAVA_OPTS='-server -Xms512m -Xmx768m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8'

在java web应用开发的过程中,tomcat这个服务器是经常用到的,而它的性能情况直接影响了web应用的效率,提高tomcat的JVM的内存,能提高它的效率,下面介绍下如何设置tomcat的JVM虚拟机内存大小:

1、Tomcat作为应用服务器,不能直接运行,需要相应的硬件和 *** 作系统的支持,,需要java虚拟机环境。也就是说tomcat启动的时候 ,JVM会分配一个初始内存以及最大内存给 tomcat,所以要提高tomcat的jvm内存,需要在启动的时候,进行配置。

2、找到tomcat在本地电脑中的安装目录,进入这个目录,然后进入bin目录中,在window环境下找到bin目录中的catalina.bat,在linux环境下找到catalina.sh。

3、右键编辑catalina.bat这个文件,找到JAVA_OPTS这个选项的位置,这个参数是java启动的时候,需要的启动参数。

4、将这个参数设置为JAVA_OPTS='-Xms512m -Xmx1024m'表示初始化分配内存为512MB,可以使用的最大内存为1024MB。

5、也可以在 *** 作系统的环境变量中对JAVA_OPTS进行设置,因为tomcat在启动的时候,也会读取 *** 作系统中的环境变量的值,进行加载。

6、如果是修改了 *** 作系统的环境变量,需要重启机器,再重启tomcat,如果修改的是tomcat配置文件,需要将配置文件保存,然后重启tomcat,设置就能生效了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7948229.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存