您的位置:首页 > 运维架构 > Tomcat

tomcat连接池的各项配置详解及例程

2008-10-15 20:14 302 查看
设置tomcat的环境变量:
假如你的tomcat直接解压到d:/tomcat下
设置TOMCAT_HOME  d:/tomcat
设置CATALINA_HOME d:/tomcat (tomcat_home 和catalina_home二者之中最少要一个)
-----------------------------------------------------------------------------
设置tomcat的数据库连接池
修改tomcat的conf下的server.xml文件
在 <GlobalNamingResources>和 </GlobalNamingResources>之间加入以下内容:
  <Resource name="jdbc/connectDB" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/connectDB">    <!-- 这里为数据源名称为jdbc/connectDB-->
      <parameter>
      <name>url</name>     <!--这里为连接数据库url-->
      <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=hcibe</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>  <!--数据库连接的最大空闲时间。超过此空闲时间,数据库连接将被标记为不可用然后被释放。设为0表示无限制。-->        <value>30</value>
      </parameter>
      <parameter>
        <name>maxActive</name> <!--最大连接线程-->
        <value>100</value>
      </parameter>
      <parameter>
        <name>driverClassName</name> <!--jdbc连接类的名称-->
        <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
      </parameter>
      <parameter>
        <name>maxWait</name> <!--最大的等待时间为5秒-->
        <value>5000</value>
      </parameter>
      <parameter>
        <name>removeAbandoned</name><!--参数removeAbandoned来保证删除被遗弃的连接使其可以被重新利用-->
        <value>true</value>
      </parameter>
      <parameter>
        <name>username</name> <!--这里为登陆数据库的用户名-->
        <value>test</value>
      </parameter>
      <parameter>
       
      <name>removeAbandonedTimeout</name> <!--设置被遗弃的连接的超时的时间,即当一个连接连接被遗弃的时间超过设置的时间时                                           那么它会自动转换成可利用的连接。默认的超时时间是300秒。-->
        <value>60</value>
      </parameter>
      <parameter>
        <name>password</name> <!--这里为登陆数据库的密码-->
        <value>test</value>
      </parameter>
    </ResourceParams>
-------------------------------------------------------------------------------------------------------------------------
设置了数据库连接池要在你的应用程序下的WEB-INF目录下的web.xml文件加入以下内容
<resource-ref>
 <description>connectDB hcibe</description>
 <res-ref-name>jdbc/connectDB</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref>--------------------------------------------------------------------------------------------------------------
在tomcat下的/conf/Catalina/localhost文件夹下面一定要建站点的XML,比如你的项目的名称是Test,
那么在下面的话可以建一个Test.xml文件,这样的话就有可能不会出错的!如果不建的话,可能会
出现Cannot create JDBC driver of class '' for connect URL 'null'的错误!
------------------------------------------------------------------------------------------------------------
4) maxActive 连接池的最大数据库连接数。设为0表示无限制。
5) maxIdle  数据库连接的最大空闲时间。超过此空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
6) maxWait 最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
7) removeAbandoned 回收被遗弃的(一般是忘了释放的)数据库连接到连接池中。
8) removeAbandonedTimeout 数据库连接过多长时间不用将被视为被遗弃而收回连接池中。
9) logAbandoned 将被遗弃的数据库连接的回收记入日志。
10) driverClassName JDBC驱动程序。
11) url   数据库连接字符串
下面是一下参数的必要说明:
1) description  对被引用的资源的描述。
2) res-ref-name  资源名称。见上面的<ResourceParams name="jdbc/connectDB">
3) res-type  资源类型。见上面的<Resource name="jdbc/connectDB" auth="Container" type="javax.sql.DataSource"/>
在写个调用的类
 import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
/**
 * <p>Title: 数据库池连接</p>
 *
 * <p>Description: 数据库访问时调用该层获取数据库连接</p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author jlin not attributable
 * @version 1.0
 */
public class DbConn{
 private Context ctx;
    private Connection conn;
  public DbConn(){
 }
    public  Connection getConn(){
  try{
   ctx = new InitialContext();
   if (ctx == null)
    throw new Exception("没有匹配的环境");
   DataSource ds = (DataSource) ctx.lookup(
    "java:comp/env/jdbc/connectDB");
   if (ds == null)
    throw new Exception("没有匹配数据库");
   conn = ds.getConnection();
  }
  catch(Exception e){
  System.out.println("无法获取数据库连接:"+e.toString());
  }
  return conn;
    }
 public  void close(){
  try{
   if(conn!=null)
    conn.close();
   if(ctx!=null)
    ctx.close();
   if(!conn.isClosed())
    System.out.println("dbconn连接没关闭.....");
  }
  catch(Exception e){
   System.out.println("关闭连接或Context异常:"+e.toString());
  }
 }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: