设为首页 收藏本站
查看: 1438|回复: 0

[经验分享] tomcat 7-dhcp配置数据库连接池

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-11 09:06:06 | 显示全部楼层 |阅读模式
原理


      关于连接池,大家都晓得用来限定对数据库的连接。基本的原理是预先在缓冲池中放入一定的空闲连接,当程序需要和数据库来交互时,不是直接新建数据库连接而是在连接池中直接取,使用完成后再放回到连接池中。为什么要这样牺牲一个缓冲来存放这些原本就会使用的连接呢?在上面讲了一个好处就是可以限定连接数,这样不会造成N多的数据库连接最后宕机;额外有了这样一个连接池,也可以来监听这些连接和便于管理。


配置

1.拷贝相关的jar


要知道连接池不是用来直接操作数据库的,最终进行相关操作的还是相关的jdbc驱动。如果是tomcat服务器,直接将驱动拷到tomncat的lib中。对于java是ojdbc6.jar;对于sqlserver来讲是tomcat-dbcp.jar、servlet-ap.jar和sql server的驱动sqljdbc4.jar 包到项目文件的web-inf 文件夹下的lib目录。




2.配置context.xml




    <Resource  
                         name="jdbc/drp"  
                        auth="Container"  
                        type="javax.sql.DataSource"  
                        factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"  
                        maxActive="100"  
                      maxIdle="30"  
           maxWait="10000"  
           username="drp1"  
           password="drp1"  
          driverClassName="oracle.jdbc.driver.OracleDriver"  
          url="jdbc:oracle:thin:@localhost:1521:drp" />  




如果是全局配置的话,将context.xml文件放在tomcat的配置文件夹conf中即可;若想局部控制就需要将context.xml放在指定的项目中webroot的meta-inf中,就只会对自己本项目起作用。


注:


Name:指定连接池的名称

Auth:是连接池管理权属性,Container表示容器管理

type:数据源类型

factory:这个是在tomcat 5之后对于commons-dhcp的一种处理方案,具体是用了这样一个指定的实现类来处理的。性能更加优越,也能够兼容dhcp。

maxActive:最大的分配连接数。

maxIdle:idle是空闲的意思,所以这个就是当tomcat启动时,缓冲池为连接的新建的连接数。

maxWait:本文最大响应时间为10s。

url:为数据库地址。

sqlserver的格式:jdbc:sqlserver://localhost:1433;DatabaseName=name;

driverclassname:驱动地址。

sqlserver的为:com.microsoft.sqlserver.jdbc.SQLServerDriver


3.验证




    Connectionconn=null;  
    PreparedStatementpstmt=null;  
    ResultSetrs=null;  
    try{  
    //实例DHCP连接池  
    Contextctx=new InitialContext();  
    //通过JNDI访问指定的连接池  
    DataSourceds=(DataSource)ctx.lookup("java:comp/env/jdbc/drp");  
    //实例化数据库连接  
    conn=ds.getConnection();  
    //查询语句  
    pstmt=conn.prepareStatement("select* from t_user");  
    rs=pstmt.executeQuery();  
    if(rs.next()){  
    System.out.print(rs.getString("user_id")+rs.getString("user_name"));  
    System.out.print(conn);  
    }  
    }catch(SQLExceptione){  
      
    }  
    finally{  
      
    }  





后序

    之前tomcat 5的版本即可以在localhost:8080/admin中视图化配置,也可在xml中;后面就弃用了视图化配置的过程。总得来说对于针对数据连接的处理的方案,有他的好处,也需要开发人员在平时的编程中养成好的习惯,如果对于开启的连接没有关闭,当连接池够大的时候,会影响性能;如果达到峰值,那么程序直接宕掉。也减少了咱们在创建数据库连接的时间。当然除了dhcp,也有C3P0、Poolmen这样的处理方案。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-25807-1-1.html 上篇帖子: linux/centos 解决Tomcat内存溢出 下篇帖子: tomcat6服务器的并发设置与优化 数据库连接
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表