tomcat应用发布、连接池、日志、堆栈

(上午存档)tomcat 5.5版本有了一些变化

1、tomcat应用发布 content

发布新的content只需要在$Catalina_HOME/conf/Catalina/localhost新建content_name.xml文件,示例:

<?xml version='1.0' encoding='utf-8'?>
<Context
        path="/test"
        docBase="/data/tomcat-webapp">
</Context>

path是访问路径,docBase是本地路径;

2、访问日志的配置。

tomcat的日志主要有2种,一个是tomcat应用程序的日志,另外是web访问日志,如同apache日志,这里仅指后者。
在content_name.xml文件中<Content></Content>中加入以下即可对此content记录访问日志:

<Valve className="org.apache.catalina.valves.AccessLogValve"
         prefix="test_access_log." suffix=".txt"
         pattern="combined" fileDataFormat="yyyy-mm-dd"/>

prefix定义文件名前缀,pattern定义格式样式,同apache两种(combined或common),fileDateFormat定义日志轮询截至范围,这里定义的是每天一个日志文件。

对于tomcat应用程序日志可以使用logj来处理,详细见http://tomcat.apache.org/tomcat-5.5-doc/logging.html

3、连接池的定义。

我们的应用采用struts架构,连接池的定义在WEB-INF/applicationContext.xml文件中:

<bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource"
  destroy-method="close">
  <property name="driverClassName">
   <value>com.mysql.jdbc.Driver</value>
  </property>
  <property name="url">
   <value>jdbc:mysql://localhost:3306/dbname</value>
  </property>
  <property name="username">
   <value>root</value>
  </property>
  <property name="password">
   <value>******</value>
  </property>
  <property name="maxActive">   //最大活动连接数
     <value>100</value>
  </property>
  <property name="maxWait">  //最长等待时间
      <value>1000</value>
  </property>
   <property name="maxIdle">
            <value>30</value>
   </property>

   <property name="defaultAutoCommit">
            <value>true</value>  
   </property>
   <property name="removeAbandoned"> //自动回收连接池,避免连接池泄露
            <value>true</value>  
   </property>
   <property name="removeAbandonedTimeout">
             <value>60</value>  
   </property>
</bean>

4、调整堆栈大小

修改CATALINA_HOME/bin/catalina.sh,在文件中增加如下设置:

JAVA_OPTS='$JAVA_OPTS -Xms[初始化内存大小] -Xmx[可以使用的最大内存] 设置环境变量:export JAVA_OPTS=”$JAVA_OPTS -Xms[初始化内存大小] -Xmx[可以使用的最大内存]”。

一般说来,你应该使用物理内存的 80% 作为堆大小。如果本机上有Apache服务器,可以先折算Apache需要的内存,然后修改堆大小。建议设置为70%;建议设置[[初始化内存大小]等于[可以使用的最大内存],这样可以减少平凡分配堆而降低性能。

发表评论