Tomcat 连接池配置心得

转载 2006年06月09日 22:37:00
  以前配置过连接池,今天又配置,怎么都想不起来要怎么设置.好不容易配置好了,但也花了我3个小时, 痛定思痛,赶紧把相关步骤记录下来.
首先,我使用的环境为Tomcat 5.0,数据库为Sqlserver2000 ;
有两种配置方法:

第一种:仅为一个具体的工程所使用而配置的数据源
第一步:打开%Tomcat_Home%/conf/server.xml,在</Context>和</host>前添加描述
<Context path="/ch13" docBase ="ch13" debug="0" reloadable ="true" crossContext="true">
    <Resource name = "jdbc/mydatasource" auth="Container" type="javax.sql.DataSource"/>
    <ResourceParams name ="jdbc/mydatasource">
    <parameter>
        <name>factory</name>
        <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>       
        <name>driverClassName</name>       
        <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>       
    </parameter>   
    <parameter>   
        <name>url</name>       
        <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs</value>   
    </parameter>       
    <parameter>   
        <name>username</name>       
        <value>sa</value>       
    </parameter>             
    <parameter>             
        <name>password</name>           
        <value>sa</value>   
    </parameter>           
    <parameter>           
        <name>maxActive</name>       
        <value>20</value>           
    </parameter>
    <parameter>       
        <name>maxIdle</name>       
        <value>10</value>           
    </parameter>       
    <parameter>   
        <name>maxWait</name>       
        <value>-1</value>       
    </parameter>
    </ResourceParams>
</Context>
注释: “ch13”是工程名,JNDI name 是 “jdbc/mydatasource”
           用户名和密码都是"sa"
第二步,将ms sqlserver要用到的三个驱动包复制到%tomcat_home%/common/lib目录下。
第三步,重新启动tomcat。
第四步,可以在工程ch13里写个测试j页面test.jsp:
<%@pageimport="java.sql.*"%>
<%@pageimport="javax.sql.*"%>
<%@pageimport="javax.naming.*"%>
<%
  DataSource ds=null;
  try{
  InitialContext ctx=new InitialContext();
  ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mydatasource");
  Connection  conn=ds.getConnection();
  Statement stmt=conn.createStatement();
  String strSql="select *  from  authors";
  ResultSet rs=stmt.executeQuery(strSql);
  while(rs.next()){
     out.println(rs.getString(1)+"<br>");               
    }
  }
  catch(Exception ex){
      out.println("出错啦!!!");
      ex.printStackTrace();
  }
%>
如果能正常显示多行数据则测试成功,否则失败。


第二种是针对Tomcat中所有的工程进行的配置,可以使用Tomcat图形界面进行设置
 第一步,通过IE浏览器进入Tomcat Administration ,用户名和密码就是安装tomcat时设置的密码.,然后选择create  New  DataSource.
输入如下:
JNDI name :jdbc/allds
password :sa
可根据实际修改密码
第二步 :在%tomcat_home%/conf/Catalina/localhost目录下找到要使用此数据源的工程同名的xml文件.
在Context一节中加入以下代码:
<ResourceLink name="jdbc/allds" global="jdbc/allds" type="javax.sql.DataSourcer"/>
第三步,在%tomcat_home%'/common/lib中添加要用到的sqlserver的驱动包,重新启动tomcat.
第四步,测试.在刚才要使用数据源的工程中添加test.jsp,代码如下:
<%@pageimport="java.sql.*"%>
<%@pageimport="javax.sql.*"%>
<%@pageimport="javax.naming.*"%>
<%
  DataSource ds=null;
  try{
  InitialContext ctx=new InitialContext();
  ds=(DataSource)ctx.lookup("java:comp/env/jdbc/allds");
  Connection  conn=ds.getConnection();
  Statement stmt=conn.createStatement();
  String strSql="select *  from  authors";
  ResultSet rs=stmt.executeQuery(strSql);
  while(rs.next()){
     out.println(rs.getString(2)+"<br>");               
    }
  }
  catch(Exception ex){
      out.println("出错啦!!!");
      ex.printStackTrace();
  }
%>
至此.tomcat中配置连接池的两种方法都全写出来了.  不周之处,请发emai 与我.:)

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=776897

本人添加一点struts下的连接池配置(andycpp的专栏)

首先,要去Apache的官方网站下载两个软件包,分别是:
commons-dbcp-1.2.1和commons-pool-1.3
将其中的jar文件拷贝到Struts项目的lib文件夹中。
对struts-config文件进行配置,在其中加入如下内容:
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
    <set-property
      property="driverClassName"
      value="com.mysql.jdbc.Driver" />
    <set-property
      property="url"
      value="jdbc:mysql://localhost/test" />
    <set-property
      property="username"
      value="root" />
    <set-property
      property="password"
      value="123456" />
    <set-property
      property="maxActive"
      value="10" />
    <set-property
      property="maxWait"
      value="5000" />
    <set-property
      property="defaultAutoCommit"
      value="false" />
    <set-property
      property="defaultReadOnly"
      value="false" />
    <set-property
      property="validationQuery"
      value="SELECT COUNT(*) FROM student" />
</data-source>
</data-sources>

最后,在你写的Action类中可以使用如下代码访问数据库:
        DataSource ds = null;
        Connection cn = null;
        try{
            ds = getDataSource(request);
            cn = ds.getConnection();
            Statement st = cn.createStatement();
            ResultSet rs = st.executeQuery("select * from student");
            rs.next();
            String s = rs.getString(1);
            System.out.println(s);
            return mapping.findForward("showresult");
        }catch(Exception e){
            e.printStackTrace();
        }

tomcat 连接池维护心得

连接池连接维护心得最近系统连接池连接出现了连接数持续上涨的问题,我们对连接池的所有的参数研究发现时代码中没有关闭连接,后来找到代码中的连接,将其关闭。先将查找心得整理如下:我们知道连接池有remove...

tomcat连接池配置

  • 2017年03月23日 15:55
  • 1.71MB
  • 下载

tomcat连接池配置

  • 2017年03月10日 17:25
  • 1.7MB
  • 下载

proxool-0.9.1连接池配置使用心得

今天在开发的时,使用mysql连接池时老出错,自己动手实践了好一会才解决。所以和喜欢编程的朋友一起分享。   按照文档要求,在项目中导入了三个jar包:proxool-0.9.1.jar、proxo...

tomcat连接池配置

  • 2015年01月05日 21:01
  • 77KB
  • 下载

Tomcat自带DBCP数据库连接池配置

1.在Web应用中用户量非常大,对每个用户的请求都需要进行数据库操作,包括:建立连接、操作数据、释放连接,效率比较低. 数据库连接池(DBCP, Database Connection Pool)通过...

Tomcat下配置MySQL数据库连接池

  • 2007年12月20日 23:12
  • 32KB
  • 下载

配置tomcat全局c3p0连接池

由于项目中多个应用访问同一个数据库,并部署在同一个tomcat下面,所以没必要每个应用都配置连接池信息,这样可能导致数据库的资源分布不均,所以这种情况完全可以配置一个tomcat的全局连接池,所涉及应...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Tomcat 连接池配置心得
举报原因:
原因补充:

(最多只允许输入30个字)