月亮的太阳

小乖的BLOG
posts - 114, comments - 41, trackbacks - 0, articles - 27
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

tomcat5.5.20连接池DBCP、C3P0配置(含官方配置)

Posted on 2006-12-12 15:41 月亮的太阳 阅读(4209) 评论(0)  编辑  收藏 所属分类: 编程

DBCP:
第一种方法:修改$CATALINA_HOME\conf\server.xml,在<GlobalNamingResources>中添加:
<Resource name="jdbc/dsname" auth="Container" type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" maxWait="200"
              driverClassName="@DB-DRIVERNAME@"
              username="@DB-USERNAME@" password="@DB-PASSWORD@"
              url="@DB-URL@"
              defaultAutoCommit="true" removeAbandoned="true"
              removeAbandonedTimeout="60" logAbandoned="true"/>

然后在$CATALINA_HOME\conf\Catalina\localhost,创建应用相关的*.xml文件,在此文件的<context>中添加:
<ResourceLink
    global="jdbc/dsname"
    name="jdbc/dsname"
    type="javax.sql.DataSourcer"/>

第二种方法:直接在$CATALINA_HOME\conf\Catalina\localhost,创建应用相关的*.xml文件,在此文件的<context>中添加:
<Resource name="jdbc/dsname" auth="Container" type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" maxWait="200"
              driverClassName="@DB-DRIVERNAME@"
              username="@DB-USERNAME@" password="@DB-PASSWORD@"
              url="@DB-URL@"
              defaultAutoCommit="true" removeAbandoned="true"
              removeAbandonedTimeout="60" logAbandoned="true"/>

还有一种是官方配置:
1.修改$CATALINA_HOME\conf\server.xml,Context对应你的web应用的目录名,放到<host>中间:
<Context docBase="test" path="/test" debug="5" reloadable="true" crossContext="true">
    <Resource name="jdbc/dsname" auth="Container" type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" maxWait="200"
              driverClassName="@DB-DRIVERNAME@"
              username="@DB-USERNAME@" password="@DB-PASSWORD@"
              url="@DB-URL@"
              defaultAutoCommit="true" removeAbandoned="true"
              removeAbandonedTimeout="60" logAbandoned="true"/>
</Context>
2.在你的WEB应用的web.xml中添加:
<resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/dsname</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

第一种和第三种差不多,第一种第一段其实就是用http://localhost:8080/admin添加DataSource后生成的,要多写一个WEB应用相关的XML来绑定连接池,第三种把这个文件集成到了server.xml中,和连接池的绑定交给了web.xml,但共同不方便的是如果TOMCAT下有多个应用,在开发中可能有的应用是不需要启动的,那你就要去修改server.xml.
第二种方法的优点也正是另外两种方法的缺点,个人比较喜欢第二种方法,一个是TOMCAT版本更换比较方便,是的之前备份应用相关XML就可以了;二是如果不需要启动不相关的应用直接把文件名改一下,比如说加个.bak后缀就可以了.



C3P0:

因为TOMCAT自带的DBCP有很多BUG,所有有时会使用C3P0来替代,配置方法和上边的结构基本一样,注意几个参数名称不一样就可以了,另外还要把C3P0的JAR包放到classpath

<Resource name="jdbc/name" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource"
              maxPoolSize="30" minPoolSize="1" initialPoolSize="5" acquireIncrement="2"
              idleConnectionTestPeriod="60" maxIdleTime="60"
              driverClass="@DB-DRIVERNAME@"
              user="@DB-USERNAME@" password="@DB-PASSWORD@"
              jdbcUrl="@DB-URL@"
              factory="org.apache.naming.factory.BeanFactory"/>


其实还有其它的方法,另外需要注意的一点是数据库相关的JDBC驱动要放到$CATALINA_HOME\common\lib下边,不然会class not found!

 


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问