Tomcat连接池配置

来源:互联网 发布:mac 预览 目录 编辑:程序博客网 时间:2024/04/28 11:15

http://www.java2000.net/viewthread.jsp?tid=484

Tomcat 5.5 + SQL Server 2000 /2005的数据源配置
1 确认SQLServer 的JDBC驱动为最新的。为一个sqljdbc.jar 文件,老版驱动为3个jar
2
一、拷贝数据库驱动jar文件放到Tomcat下

1、Tomcat4/Tomcat5:放到/common/lib/下
2、Tomcat6:放到/lib/下
二、对于Tomcat5和Tomcat6,官方建议不要将<Context>的配置直接写在server.xml中,使用单独的xml文件部署应用。
1、对于Tomcat4:此xml文件可以任意命名,放置到/Tomcat路径/webapps/下
2、对于Tomcat5、6:必须命名为ROOT.xml(ROOT大写),放置到/Tomcat路径/conf/Catalina/localhost/下(目录不存在时创建)

三、Tomcat连接池配置
1、
Tomcat5/Tomcat6
ROOT.xml文件内容如下、根据实际情况做相应更改。
<Context path="/clothessys" docBase="E:/JBuilder/clothessys" privileged="true">
 <Resource name="dstest" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="sa" password="123456" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
               url="jdbc:sqlserver://localhost:1433; DatabaseName=db_clothessys"/>
<ResourceLink name="dstest" global="dstest" type="javax.sql.DataSourcer"/>
</Context>
2、
也可以直接在 tomcat/conf/server.xml 增加同样的内容。
   
<Context   path=""   reloadable="true"   docBase="ROOT"   />   
<Context path="/clothessys" docBase="E:/JBuilder/clothessys" privileged="true">
 <Resource name="dstest" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="sa" password="123456" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
               url="jdbc:sqlserver://localhost:1433; DatabaseName=db_clothessys"/>
<ResourceLink name="dstest" global="dstest" type="javax.sql.DataSourcer"/>
</Context>
3、
Tomcat5
在context.xml中增加如下内容
 <Resource name="dstest" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="sa" password="123456" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
               url="jdbc:sqlserver://localhost:1433; DatabaseName=db_clothessys"/>

4、修改 web.xml 引用我们配置的数据源
<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>dstest</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

 

 

//name:指定Resource的JNDI名字;
//auth:指定管理Resource的Manager,两个可选值Container和Application.Container表示由容器来创建Rsource,Application表示由Web应用来创建和管理Resource
//type指定Resource所属的java类名
//maxActive:指定数据库连接池中处于活动状态的数据库连接的最大数目,取值为0,表示不受限制.
//maxIdle:指定数据库连接池中处于空闲状态的数据库连接的最大数目,取值为0,表示不受限制.
//maxWait:指定数据库连接池中的数据库处于空闲状态的最长时间(毫秒),超过这一时间将会抛出异常.取值为-1,表示无线制等待
//username:连接数据库用户名,password:密码
//driverClassName:指定连接数据库的jdbc驱动程序
//url指定连接数据库的URL;sql2000是jdbc:microsoft:sqlserver://localhost:1433;sql2005是jdbc:sqlserver://localhost:1433

//description:对所引用的资源的说明
//res-ref-name:指定引用资源的JNDI的名字,与元素中的name属性对应
//res-type:指定所引用资源的类名字,与元素中的type属性对应
//res-auth:指定管理所引用资源的Manager,与元素中的auth属性对应
四、连接池测试

下面的jsp文件中ctx.lookup("java:comp/env/dstest"),“dstest”对应为<Resource>节点的“name”属性值。


<%@ page import="java.sql.*,javax.sql.*,javax.naming.*" %>
<%
  Connection conn = null;
  try{
    Context ctx = new InitialContext();
    DataSource ds = (DataSource)ctx.lookup("java:comp/env/dstest");
    conn = ds.getConnection();
    out.print("connection pool connected !");  
  }catch (Exception e) {
    out.print(e.getMessage());
    e.printStackTrace();
  }finally {
    if(conn!=null)  conn.close();
  }
%>
Tomcat 5.5 + SQL Server 2000 的数据源配置http://www.java2000.net/viewthread.jsp?tid=484