由于项目中多个应用访问同一个数据库,并部署在同一个tomcat下面,所以没必要每个应用都配置连接池信息,这样可能导致数据库的资源分布不均,所以这种情况完全可以配置一个tomcat的全局连接池,所涉及应用均访问该连接池,让数据库资源得以充分利用。

本人使用了c3p0连接池,对c3p0虽然没做过相关性能测试,但是网评还不错,使用的是0.9.1版本,tomcat 使用 7.0.32

配置分为几个步骤:

一、在tomcat的server.xml中配置数据源

找到GlobalNamingResources节点,在里面新增如下内容(其中具体参数意义请参考c3p0官方说明):

  1. <Resource name="jdbc/db1" auth="Container"
  2. type="com.mchange.v2.c3p0.ComboPooledDataSource"
  3. factory="org.apache.naming.factory.BeanFactory"
  4. driverClass="oracle.jdbc.driver.OracleDriver"
  5. jdbcUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
  6. user="scott"
  7. password="123456"
  8. minPoolSize="10"
  9. maxPoolSize="200"
  10. maxIdleTime="1800"
  11. acquireIncrement="2"
  12. maxStatements="0"
  13. initialPoolSize="20"
  14. idleConnectionTestPeriod="60"
  15. acquireRetryAttempts="30"
  16. acquireRetryDelay="1000"
  17. testConnectionOnCheckin="false"
  18. breakAfterAcquireFailure="false"
  19. testConnectionOnCheckout="false"/>

二、在tomcat下content.xml中配置数据源对应的JNDI

  1. <ResourceLink name="jdbc/db1" global="jdbc/db1"  type="javax.sql.DataSource"/>

三、将c3p0的jar包、数据库驱动包放到tomcat下lib目录里面

应用访问方式:

一、基于spring进行管理,只需要在spring中配置数据源即可

  1. <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  2. <property name="jndiName" value="java:comp/env/jdbc/db1" />
  3. </bean>

二、写代码直接通过JNDI获取数据源

    1. try {
    2. Context ctx = new  InitialContext();
    3. Context envContext = (Context)ctx.lookup("java:/comp/env");//java:/comp/env为固定路径
    4. DataSource ds = (DataSource)envContext.lookup("jdbc/db1");//tomcat中设置的数据源
    5. Connection con = ds.getConnection();
    6. System.out.println(con);
    7. } catch (Exception e) {
    8. // TODO Auto-generated catch block
    9. e.printStackTrace();
    10. }

配置tomcat全局c3p0连接池的更多相关文章

  1. Hibernate的配置中,c3p0连接池相关配置

    一.配置c3p0 1.导入 hibernate-c3po连接池包,Maven地址是:http://mvnrepository.com/artifact/org.hibernate/hibernate- ...

  2. tomcat下c3p0连接池配置问题

    一.首先如果要使用这个连接池,就需要导入c3p0-0.9.2-pre1.jar架包和支持架包mchange-commons-0.2.jar, 我这里测试使用的是msql数据库 当然也需要导入mysql ...

  3. 160707、Tomcat 使用 c3p0连接池

    Tomcat 中Jndi是使用Tomcat自带的连接池,由于客户要求,抛弃Tomcat自带的连接池.使用c3p0 .经过几个小时调试,解决方案如下: 环境:Tomcat 6 下面来看Jndi 与 c3 ...

  4. c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包

    [-] DBCP连接池配置 dbcp jar包 c3p0连接池配置 c3p0 jar包 jdbc-pool连接池配置 jdbc-pool jar包 常用数据库的driverClass和jdbcUrl ...

  5. C3P0连接池配置和实现详解

    一.配置 <c3p0-config> <default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 --> ...

  6. C3P0连接池配置和实现详解(转)

    一.配置 <c3p0-config> <default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 --> ...

  7. JNDI配置c3p0连接池

    JNDI是什么呢? 就是java命名和文件夹接口.是SUN公司提供的一种标准的Java命名系统接口. 不好理解?简单说呢.他就是一个资源,放在tomcat里面的一个资源,今天我们就把数据库连接池放到t ...

  8. Hibernate -- 配置c3p0连接池, 事务隔离级别, 管理session

    知识点1:配置c3p0连接池(了解) * 引入c3p0-0.9.1.jar * 在hibernate.cfg.xml文件中增加如下配置 <!-- C3P0连接池设定--> <!-- ...

  9. DBCP,C3P0与Tomcat jdbc pool 连接池的比较

    hibernate开发组推荐使用c3p0; spring开发组推荐使用dbcp(dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect,告诉连接被重置 ...

随机推荐

  1. C 图像处理 颜色相关宏定义

    很多年前整理的,像素处理的宏定义,包括r8g8b8到r5g6b5之间的相互转化,浮点数像素与整数值之间的相互转化,像素值的插值.取反等处理.具体没什么好说的,宏定义的代码还是很容易看的.这套东西对搞图 ...

  2. 解决:HTTP 错误 404.2 - Not Found. 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面

    错误重现: 在发布网站的过程中,虽然不是第一次发布了,但是还是遇到了很多的问题.为了以后可以轻松解决此类问题还是积累下来比较好. 问题:HTTP 错误 404.2 - Not Found. 由于 We ...

  3. .Net垃圾收集机制—了解算法与代龄

    垃圾收集器在本质上就是负责跟踪所有对象被引用到的地方,关注对象不再被引用的情况,回收相应的内存.在.NET平台中同样如此,有效的提高.NET垃圾回收性能,能够提高程序执行效率. 其实垃圾收集并不是伴随 ...

  4. python3 UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f9e0' in position 230: illegal multibyte sequence

    最近在保存微博数据到(csv文件)时报错: UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f9e0' in positio ...

  5. ASP 未结束的字符串常量

    之前的电脑是XP的,前段时间公司将电脑升级到了Windows7 今天在处理一个asp项目时发现打开就报错了"未结束的字符串常量" 在网络上了解到是因为编码的问题,但我的项目文件都是 ...

  6. 微信小程序价值思考:手机端的CS-BS迁移

    从很多特点来看,小程序都非常类似于网页:主要的业务逻辑在服务端.客户端无需安装应用程序.小程序的开发采用的HTML+JS+CSS技术等等.张小龙自己对小程序的定位也大概如此:无意做小程序分发平台,只是 ...

  7. Mongo命令批量更新某一数组字段的顺序

      db.table.find().forEach(function (doc) {     var oldValue = doc.Column1;     var newValue = [sa[1] ...

  8. [Node.js]25. Level 5. Route params

    Create a route that responds to a GET request '/quotes/<name>', then use the param from the UR ...

  9. Android图片与缩略

    /** * 将图片文件原比例缩略.并使其不超过最大宽.高 * @param path : 图片文件 * @param requestW : 缩略后最大宽度 * @param requestH : 缩略 ...

  10. android 时间与String的相互转化

    :大体思路 [html] view plaincopy 这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=n ...