因为JNDI配置方式在tomcat5.0和tomcat5.5.x进行过修改,所以tomcat6的JNDI配置与先前有些不同,这篇文章只介绍在tomcat6下面配置数据库连接池。
tomcat中的DBCP支持JDBC2.0规范,但是如果使用1.4版本一上的JVM的话,则支持JDBC3.0规范。如果想使用JDBC3.0的功能请使用1.4版本一上的JVM。
使用DBCP需要安装以下两个组件:
1.Commons DBCP
2.Commons Pool
tomcat安装目录下的lib/tomcat-dbcp.jar已经包含这两个组件了。
tomcatJNDI配置是写在context中的。在tomcat6中context有5种定义方式:
1.将数据库连接池的配置写在 $CATALINA_BASE/conf/context.xml中,这样的配置可以被tomcat服务器上所有的服务加载
2.写在文件$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default中,同样这个文件可以被这个host下的所有服务加载。
3.写在文件$CATALINA_BASE/conf/[enginename]/[hostname]/***.xml中
4.在所要发布的web应用下的/META-INF/context.xml(如果没有则创建)中写上配置内容。这样在web应用发布的时候这个xml配置文件会自动复制到$CATALINA_BASE/conf/[enginename]/[hostname]/目录下面,并重命名为web应用名字.xml。
5.是将配置内容写在cong/server.xml文件中。(不建议这种方式,因为这样修改context配置需要重新启动tomcat服务器)
我建议采用第四种方式,这样的好处是应用开发者可以自己配置数据库连接池而不用修改服务器端的配置,而且也支持热部署。
数据库连接池context的属性
数据库连接池默认是不支持设置自动释放长时间未用的connection的。可以通过设置removeAbandoned="true"来是DBCP连接池支持自动释放长时间未用的连接。默认的时间是300秒,可以通过设置removeAbandonedTimeout="60"来将释放延时改为60秒或者其他。
下面是mysql 数据库的context配置示例
<Context path="/DBTest" docBase="DBTest"
reloadable="true" crossContext="true">
<!-- maxActive: Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to -1 for no limit.
-->
<!-- maxIdle: Maximum number of idle dB connections to retain in pool.
Set to -1 for no limit. See also the DBCP documentation on this
and the minEvictableIdleTimeMillis configuration parameter.
-->
<!-- maxWait: Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<!-- username and password: MySQL dB username and password for dB connections -->
<!-- driverClassName: Class name for the old mm.mysql JDBC driver is
org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.
-->
<!-- url: The JDBC connection url for connecting to your MySQL dB.
-->
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest"/>
</Context>
将上面的context配置通过开始时介绍的集中配置方式配置到服务器上。然后就是在web应用中修改配置,在 WEB-INF/web.xml添加如下内容:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
这样就可以在web应用中使用数据库连接池了。
分享到:
相关推荐
用dbcp连接池,mysql数据库,在tomcat服务器下,通过hibernate配置jndi数据源. 我想此标题已经比较明确了。 在此说明一点,hibernate开发小组不推荐在hibernate下使用dbcp,如果一定要的话,请慎重考虑。
Tomcat+mysql+eclipse数据库连接池的配置
根据综合性能,可靠性,稳定性,扩展性,易用性等因素替换成最优的数据库连接池。 Druid:druid-1.0.29 数据库 Mysql.5.6.17 替换目标:替换掉C3P0,用druid来替换 替换原因: 1、性能方面 hikariCP>druid>tomcat-...
[Database-support-package]-...[myDbPoolUse]C3P0连接池配置/DBCP连接池配置/Apache的DBUtils框架使用 [myFilterDemoWeb]过滤器Filter学习-设置全站编码与设置页面缓存 [myGzipWeb]全站压缩 [myJavaMainDemo]Java-Q
1、JDK1.4.2以上版本(注意配置java_home路径) ...1、本订销系统程序默认使用数据为连接池使用的apache commons-dbcp-1.2.1管理数据库连接(tomcat自带),确保该包可用.若要使用其它数据库连接沲,需要修改eas
文件名与介绍: [Database-support-...[myDbPoolUse]C3P0连接池配置/DBCP连接池配置/Apache的DBUtils框架使用 [myFilterDemoWeb]过滤器Filter学习-设置全站编码与设置页面缓存 [myGzipWeb]全站压缩 [myJavaMainDe
使用Struts的Action来对数据库进行增、删、... <br/>Tomcat数据库连接池配置: Server.xml 增加如下内容: <Context path="/PaginationStruts" docBase="PaginationStruts" reloadable="true"><br/> ...
1、本订销系统程序默认使用数据为连接池使用的apache commons-dbcp-1.2.1管理数据库连接(tomcat自带),确保该包可用.若要使用其它数据库连接沲,需要修改easyjf-dbo.xml文件中的相应配置。 2、若不能正常访问...
1、数据库MySQL,连接... <br/>Tomcat数据库连接池配置: Server.xml 增加如下内容: <Context path="/PaginationStrutsHibernate" docBase="PaginationStrutsHibernate" reloadable="true"><br/> ...
环境配置(Tomcat与JDK的版本使用问题,DBCP/C3P0数据库连接池的配置问题) 2. 登录(会话)维持————session/cookies 3. 分页显示————PageModel/jdbc-mysql查 ### 实现图 ![主页]...
文件名与介绍: [数据库支持包]-数据库需要用到的-c3p0 / dbcp / dbUtils工具支持包 [Hibernate]利用Hibernate进行一对多的级联操作-Web实例 ...[myDbPoolUse] C3P0连接池配置/ DBCP连接池配置/ Apache的DBUti
1:系统功能 ... 2)产品浏览 3)购物车 4)订单创建 ... 7)数据库访问:JDBC,dbcp(连接池) 3:采取分层思想 1)表现层(js,css,jsp) 2)控制器层(struts2) 3)业务层(JavaBean,Action) 4)数据访问(JDBC+DAO)
这是一个1:系统功能 ... 2)产品浏览 3)购物车 ... 7)数据库访问:JDBC,dbcp(连接池) 3:采取分层思想 1)表现层(js,css,jsp) 2)控制器层(struts2) 3)业务层(JavaBean,Action) 4)数据访问(JDBC+DAO)
12.1.1 DBCP连接池配置 228 12.1.2 DBCP配置建议 233 12.1.3 数据库驱动超时实现 234 12.1.4 连接池使用的一些建议 235 12.2 HttpClient连接池 236 12.2.1 HttpClient 4.5.2配置 236 12.2.2 HttpClient连接池源码...
2.项目采用的是DBCP配置数据库连接池,修改src目录下的config.properties里关于数据库连接池的配置 将url,username,password改成自己的就可以 3. 项目用到的jar包我都放在了lib目录下,自己引入就ok