Tomcat 7 DBCP 配置(MySQL)

复制mysql-connector-java-5.1.17-bin.jar到$CATALINA_BASE/lib中。

使用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服务器)

定义方式(4)的特点:应用开发者可以自己配置数据库连接池而不用修改服务器端的配置,而且也支持热部署。
数据库连接池context的属性
数据库连接池默认是不支持设置自动释放长时间未用的connection的。可以通过设置removeAbandoned="true"来是DBCP连接池支持自动释放长时间未用的连接。默认的时间是300秒,可以通过设置removeAbandonedTimeout="60"来将释放延时改为60秒或者其他。
下面是mysql 数据库的context配置示例:

$CATALINA_BASE/conf/context.xml

<Resource name="jdbc/MySQLDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="Abc12345" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://172.16.13.120:3306/test01"/>

WEB-INF/web.xml

<description>MySQL Test App</description>
  <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/MySQLDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

原文地址:https://www.cnblogs.com/flysoft/p/2129484.html