Tomcat 5.5.20 数据库连接池配置
来源:互联网 发布:飞客数据恢复中心 编辑:程序博客网 时间:2024/05/29 14:56
以前用的Tomcat版本都是Tomcat 5.0.28,现在想用新的版本,把应用部署到Tomcat 5.5.20时,发现连接池建立不成功。这里先介绍Tomcat 5.5.20下的配置方法,我用来发布的Web应用有两个,分别是tms和cms。数据库分别以SQLServer 2000和Mysql5.0.26为例。(我喜欢用最新版本)
发布的web应用名为tms,数据库为SQLServer 2000,JDBC驱动为SQL Server 2000 Driver for JDBC SP3。(不是SP3也是可以的)。
1. 拷贝SQLServer2K JDBC驱动程序到:%TOMCAT_HOME%/common/lib目录下,分别为:msbase.jar,mssqlserver.jar,msutil.jar
如果数据库是mysql,则同样拷贝JDBC驱动到该目录下,我用的是:mysql-connector-java-5.0.3-bin.jar。
2. 发布web应用tms。修改%TOMCAT_HOME%/conf/server.xml,在<Host>与</Host>之间加入以下代码,
<Context path="/tms" docBase="D:/devhome/tmsproj/tms" debug="0" reloadable="true">
<Resource name="jdbc/TMSDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="20"
maxWait="5000"
username="sa"
password="sa"
maxActive="4"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tmsdb">
</Resource>
</Context>
#################### 若是mysql,则文件如下(web应用为cms)####################
<Context path="/cms" docBase="D:/devhome/cmsproj/cms" debug="0" reloadable="true">
<Resource name="jdbc/cmsdb"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="20"
maxWait="5000"
maxActive="10"
username="root"
password="root"
url="jdbc:mysql://localhost/cms?characterEncoding=GB2312">
</Resource>
</Context>
##############################################################################
3. 编辑WEB应用的web.xml文件,在<web-app>与</web-app>之间加入如下代码:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TMSDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
注意:其实这一步是可选的,也就是说,不需要设定web.xml中的resource-ref,在server.xml或者对应每个web应用程序各个单独包含<Context>元素的xml文件设定<Resource>就可以了。两者是等价的。
4.有些童子说,要在%TOMCAT_HOME%/conf/Catalina/localhost目录下增加一个以web应用名字命名的xml文件,比如本例中tms.xml,如下所示,其实是不需要的。(在Tomcat5.0.28中,在server.xml中配置后会自动生成这个文件,在 Tomcat5.5.20中没有)
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="D:/devhome/tmsproj/tms" path="/tms" reloadable="true">
<Resource name="jdbc/TMSDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
password="sa"
maxActive="4"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tmsdb">
</Resource>
</Context>
5.这里配置就完成了,在程序中可以测试一下。
String dsname = "java:comp/env/jdbc/cmsdb";
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(serviceName);
Connection conn = ds.getConnection();
// 利用连接执行DB操作......
6.最后再比较一下在数据源配置上Tomcat5.5与Tomcat5.0的差别。
下面是上面第2步所述Web应用tms在Tomcat5.0.28中的配置<Context>部分。
<Context path="/tms" docBase="D:/devhome/tmsproj/tms" debug="0" reloadable="true">
<Resource name="jdbc/TMSDB"
auth="Container"
type="javax.sql.DataSource" />
<ResourceParams name="jdbc/TMSDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tmsdb</value>
</parameter>
</ResourceParams>
</Context>
上面针对tomcat5.0的jdbc数据源的ResourceParams其实不需要设定factory,直接使用默认的dbcp数据源。注意上面Resource元素和ResourceParams设定是独立的,不要以为ResourceParams是Resource的嵌套元素。
出现这些差别,究其原因是在Tomcat5.5中,有一些变化,取消掉了ResourceParams元素,所有的参数跟随着Resource,成为Resource元素的属性了。
6.另外,除了传统的在server.xml和单独每个web应用程序对应的context的xml文件中设定Resource元素,还多了一种方式。
那就是在web应用程序目录下创建一个META-INF目录,新建一个context.xml,写在里面。
注明:以上内容结合自己的实践过程中参考了网上很多资料,在此表示感谢。
发布的web应用名为tms,数据库为SQLServer 2000,JDBC驱动为SQL Server 2000 Driver for JDBC SP3。(不是SP3也是可以的)。
1. 拷贝SQLServer2K JDBC驱动程序到:%TOMCAT_HOME%/common/lib目录下,分别为:msbase.jar,mssqlserver.jar,msutil.jar
如果数据库是mysql,则同样拷贝JDBC驱动到该目录下,我用的是:mysql-connector-java-5.0.3-bin.jar。
2. 发布web应用tms。修改%TOMCAT_HOME%/conf/server.xml,在<Host>与</Host>之间加入以下代码,
<Context path="/tms" docBase="D:/devhome/tmsproj/tms" debug="0" reloadable="true">
<Resource name="jdbc/TMSDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="20"
maxWait="5000"
username="sa"
password="sa"
maxActive="4"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tmsdb">
</Resource>
</Context>
#################### 若是mysql,则文件如下(web应用为cms)####################
<Context path="/cms" docBase="D:/devhome/cmsproj/cms" debug="0" reloadable="true">
<Resource name="jdbc/cmsdb"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="20"
maxWait="5000"
maxActive="10"
username="root"
password="root"
url="jdbc:mysql://localhost/cms?characterEncoding=GB2312">
</Resource>
</Context>
##############################################################################
3. 编辑WEB应用的web.xml文件,在<web-app>与</web-app>之间加入如下代码:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TMSDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
注意:其实这一步是可选的,也就是说,不需要设定web.xml中的resource-ref,在server.xml或者对应每个web应用程序各个单独包含<Context>元素的xml文件设定<Resource>就可以了。两者是等价的。
4.有些童子说,要在%TOMCAT_HOME%/conf/Catalina/localhost目录下增加一个以web应用名字命名的xml文件,比如本例中tms.xml,如下所示,其实是不需要的。(在Tomcat5.0.28中,在server.xml中配置后会自动生成这个文件,在 Tomcat5.5.20中没有)
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="D:/devhome/tmsproj/tms" path="/tms" reloadable="true">
<Resource name="jdbc/TMSDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
password="sa"
maxActive="4"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tmsdb">
</Resource>
</Context>
5.这里配置就完成了,在程序中可以测试一下。
String dsname = "java:comp/env/jdbc/cmsdb";
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(serviceName);
Connection conn = ds.getConnection();
// 利用连接执行DB操作......
6.最后再比较一下在数据源配置上Tomcat5.5与Tomcat5.0的差别。
下面是上面第2步所述Web应用tms在Tomcat5.0.28中的配置<Context>部分。
<Context path="/tms" docBase="D:/devhome/tmsproj/tms" debug="0" reloadable="true">
<Resource name="jdbc/TMSDB"
auth="Container"
type="javax.sql.DataSource" />
<ResourceParams name="jdbc/TMSDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tmsdb</value>
</parameter>
</ResourceParams>
</Context>
上面针对tomcat5.0的jdbc数据源的ResourceParams其实不需要设定factory,直接使用默认的dbcp数据源。注意上面Resource元素和ResourceParams设定是独立的,不要以为ResourceParams是Resource的嵌套元素。
出现这些差别,究其原因是在Tomcat5.5中,有一些变化,取消掉了ResourceParams元素,所有的参数跟随着Resource,成为Resource元素的属性了。
6.另外,除了传统的在server.xml和单独每个web应用程序对应的context的xml文件中设定Resource元素,还多了一种方式。
那就是在web应用程序目录下创建一个META-INF目录,新建一个context.xml,写在里面。
注明:以上内容结合自己的实践过程中参考了网上很多资料,在此表示感谢。
- Tomcat 5.5.20 数据库连接池配置
- tomcat配置数据库连接池
- 配置tomcat数据库连接池
- tomcat数据库连接池配置
- tomcat配置数据库连接池
- tomcat 数据库连接池配置
- Tomcat 数据库连接池配置
- tomcat数据库连接池配置!
- tomcat数据库连接池配置
- tomcat数据库连接池配置
- tomcat数据库连接池配置
- Tomcat 配置数据库连接池
- Tomcat数据库连接池配置
- Tomcat数据库连接池配置
- tomcat配置数据库连接池
- tomcat 数据库连接池配置
- Tomcat数据库连接池配置
- tomcat数据库连接池配置
- JAVA中用动态代理类实现记忆功能(一)
- The Why and the How of the Long Transaction
- JAVA中用动态代理类实现记忆功能(二)
- thinking of memcpy()
- 技术还是生活
- Tomcat 5.5.20 数据库连接池配置
- 一些面向对象的设计法则
- C#中的openFileDialog控件
- Ajax实现智能表格(适合B/S模式项目的录入页面)
- C#中的换行代码
- vc的MakeFile工程直接编译驱动
- vs2005兩個非常有用的函數
- 在.net应用程序中使用用户控件 [zt from zz]
- 触发器例子