Tomcat 中Jndi是使用Tomcat自带的连接池,由于客户要求,抛弃Tomcat自带的连接池。使用c3p0 。经过几个小时调试,解决方案如下:

环境:Tomcat 6

下面来看Jndi 与 c3p0 结合: 
下载地址:http://nchc.dl.sourceforge.net/sourceforge/ 
c3p0/c3p0c3p0-0.9.0.4.bin.zip 
把 c3p0-0.9.0.4.jar 放到应用服务的%tomcat6%/lib目录下。如: 
1.在context.xml中<Context></Context>内加<Resource />,完整的示例:

  1. <?xml version= '1.0'  encoding= 'utf-8' ?>
  2. <Context>
  3. <WatchedResource>WEB-INF/web.xml</WatchedResource>
  4. <!-- 下面注释部分为使用jndi+tomcat自带的连接池-->
  5. <!--<Resource name="jdbc/ctitc"  type= "javax.sql.DataSource"
  6. username="business"  password= "ctitc"               driverClassName="oracle.jdbc.driver.OracleDriver"  url= "jdbc:oracle:thin:@127.0.0.1:1521:FJTDC"
  7. maxIdle="30"  maxWait= "5000"   maxActive= "100" />
  8. -->
  9. <!-- 下面注释部分为使用jndi+c3p0-->
  10. <Resource name="jdbc/ctitc"
  11. type="com.mchange.v2.c3p0.ComboPooledDataSource"
  12. maxPoolSize="50"  minPoolSize= "2"  acquireIncrement= "2"
  13. factory="org.apache.naming.factory.BeanFactory"
  14. user="user"  password= ""
  15. driverClass="oracle.jdbc.driver.OracleDriver"
  16. jdbcUrl="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"
  17. />
  18. </Context>
  1. <?xml version='1.0' encoding='utf-8'?>
  2. <Context>
  3. <WatchedResource>WEB-INF/web.xml</WatchedResource>
  4. <!-- 下面注释部分为使用jndi+tomcat自带的连接池-->
  5. <!--<Resource name="jdbc/ctitc" type="javax.sql.DataSource"
  6. username="business" password="ctitc"              driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:FJTDC"
  7. maxIdle="30" maxWait="5000"  maxActive="100"/>
  8. -->
  9. <!-- 下面注释部分为使用jndi+c3p0-->
  10. <Resource name="jdbc/ctitc"
  11. type="com.mchange.v2.c3p0.ComboPooledDataSource"
  12. maxPoolSize="50" minPoolSize="2" acquireIncrement="2"
  13. factory="org.apache.naming.factory.BeanFactory"
  14. user="user" password=""
  15. driverClass="oracle.jdbc.driver.OracleDriver"
  16. jdbcUrl="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"
  17. />
  18. </Context>

2.在web.xml添加:

  1. <resource-ref>
  2. <description>DB Connection</description>
  3. <res-ref-name>jdbc/ctitc</res-ref-name>
  4. <res-type>javax.sql.DataSource</res-type>
  5. <res-auth>Container</res-auth>
  6. </resource-ref>
    1. <resource-ref>
    2. <description>DB Connection</description>
    3. <res-ref-name>jdbc/ctitc</res-ref-name>
    4. <res-type>javax.sql.DataSource</res-type>
    5. <res-auth>Container</res-auth>
    6. </resource-ref>

160707、Tomcat 使用 c3p0连接池的更多相关文章

  1. 配置tomcat全局c3p0连接池

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

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

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

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

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

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

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

  5. C3P0连接池问题,APPARENT DEADLOCK!!! Creating emergency..... [问题点数:20分,结帖人lovekong]

    采用c3p0连接池,每次调试程序,第一次访问时(Tomcat服务器重启后再访问)都会出现以下错误,然后连接库需要很长时间,最终是可以连上的,之后再访问就没问题了,请高手们会诊一下,希望能帮小弟解决此问 ...

  6. 开源数据库连接池之Tomcat内置连接池

    本篇介绍几种开源数据库连接池,同时重点讲述如何使用Tomcat服务器内置的数据库连接池. 之前的博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式.这样能减少数 ...

  7. JNDI配置c3p0连接池

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

  8. c3p0连接池]

    <c3p0-config> <!-- 默认配置 --> <default-config> <property name="jdbcUrl" ...

  9. c3p0连接池获得的Connection执行close方法后是否真的销毁Connection对象?

    问题描述: jfinal做的api系统中,在正常调用接口一段时间后,突然再调用接口的时候,该请求无响应api系统后台也无错误信息 (就是刚开始接口调用是正常的,突然就无响应了) 于是啊,就开始找错误. ...

随机推荐

  1. 纯div+css制作的弹出菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Xcode中利用git源代码版本号控制

    git是一个版本号控制系统,能够通过命令行来调用,也有专门的桌面软件.这里主要介绍在Xcode中怎样利用git来进行版本号的控制. 一.创建git源 从Xcode5開始引入了使用git的一些新特性.将 ...

  3. 关于Animator获取当前剪辑长度

    通常下意识的肯定用这个接口 GetCurrentAnimatorStateInfo().length 但是存在一个过渡动画的问题,具体看这篇:过渡动画的测试 所以当播新的状态时直接取动画时间,取到的就 ...

  4. EF检索中文失败的解决办法

    1. MYSQL: 保证所有的的列都是UTF8格式. 2. VS2010: 在data server建立连接时,选择advance,将chracterset设成utf8,这样在VS2010里查看和更改 ...

  5. CCNA2.0笔记_二层交换

    VLAN上并不需要配置IP地址,除非是出于管理的需要. 基于Vlan的设计原理,即隔离网络的广播域,再者运行STP来提供二层的防环机制:在同一个设备集中不同Vlan之间是无法通信的(在没有三层设备的情 ...

  6. MapReduce编程实例4

    MapReduce编程实例: MapReduce编程实例(一),详细介绍在集成环境中运行第一个MapReduce程序 WordCount及代码分析 MapReduce编程实例(二),计算学生平均成绩 ...

  7. uGUI ScrollView

    Scroll View + Grid Layout Group 滑动列表,与NGUI类似 ScrollView上所需组件:Scroll Rect + Mask + Image.Scroll Rect指 ...

  8. python - __str__ 和 __repr__

    内建函数str()和repr() (representation,表达,表示)或反引号操作符(``)可以方便地以字符串的方式获取对象的内容.类型.数值属性等信息.str()函数得到的字符串可读性好(故 ...

  9. 【跟我一步一步学Struts2】——Struts2工作流程

    上一篇博客通过一个简单的小样例对struts2的流程有一个简单的了解,这篇博客继续. 当用户要登陆某一个站点.输入username,password,点击登陆就会触发以下一系列过程 : 1.请求过来之 ...

  10. 关于css中层叠性的一点理解

    关于css层叠性的一点理解 标签(空格分隔): html css 我们平时在写css的时候会遇到这样的情况 <!DOCTYPE html> <html lang="en&q ...