zoukankan      html  css  js  c++  java
  • DBCP连接池配置常用参数说明

    参数 默认值 说明
    username 传递给JDBC驱动的用于建立连接的用户名
    password 传递给JDBC驱动的用于建立连接的密码
    url 传递给JDBC驱动的用于建立连接的URL
    driverClassName 使用的JDBC驱动的完整有效的Java 类名
    initialSize   0 初始化连接:连接池启动时创建的初始化连接数量,1.2版本后支持
    maxActive 8 最大活动连接:连接池在同一时间能够分配的最大活动连接的数量, 如果设置为非正数则表示不限制
    maxIdle   8 最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,
    如果设置为负数表示不限制
    minIdle   0 最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,
    如果设置为0则不创建
    maxWait   无限   最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数)超过时间则抛出异常,如果设置为-1表示无限等待
    testOnReturn   false  是否在归还到池中前进行检验
    testWhileIdle   false  连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,
    则连接将被从池中去除.设置为true后如果要生效,validationQuery参数必须设置为非空字符串
    minEvictableIdleTimeMillis   1000 * 60 * 30 连接在池中保持空闲而不被空闲连接回收器线程
    (如果有)回收的最小时间值,单位毫秒
    numTestsPerEvictionRun  3 在每次空闲连接回收器线程(如果有)运行时检查的连接数量
    timeBetweenEvictionRunsMillis  -1 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位.
     如果设置为非正数,则不运行空闲连接回收器线程
    validationQuery    null SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,
    则查询必须是一个SQL SELECT并且必须返回至少一行记录
    testOnBorrow  true

    是否在从池中取出连接前进行检验,如果检验失败,
    则从池中去除连接并尝试取出另一个.

       DBCP连接池的自我检测

    默认配置的连接池,是不对池中的链接做测试的,有时已经断开,但连接池不知道,这样从池里取出来的这样的连接访问数据库就会报错。

    解决方案:1.定时对连接做测试,测试失败就关闭连接。

                  2.控制链接的空闲时间达到N分钟,就关闭连接(然后可再新建连接)

                  3.也可以混合使用两个方案:

                     。validationQuery(测试连接的sql语句) : validationQuery= "SELECT 1"

          。testWhileIdle (连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除) : testWhileIdle  = "true"

                     。testOnBorrow = "false"   借出连接时不要测试,否则很影响性能,性能会下降7-10倍

          。timeBetweenEvictionRunsMillis (每30秒运行一次空闲连接回收器(独立线程)。并每次检查3个连接,

                        如果连接空闲时间超过30分钟就销毁。销毁连接后,连接数量就少了,如果小于minIdle数量,就新建连接,维护数量不少于minIdle)

                        timeBetweenEvictionRunsMillis = "30000"  

                     。minEvictableIdleTimeMillis(池中的连接空闲x毫秒后被回收,默认30分钟):minEvictableIdleTimeMillis = "1800000"

                     。numTestsPerEvictionRun(在每次空闲连接回收器线程(如果有)运行时检查的连接数量,默认值就是3.) : numTestsPerEvictionRun ="3" 

    官方文档

  • 相关阅读:
    最快速的Android开发环境搭建ADT-Bundle及Hello World
    android sdk manager 无法更新解决方法
    ADO.NET 新特性之SqlBulkCopy
    WCF错误:413 Request Entity Too Large
    构建高性能的ASP.NET应用程序
    编写高性能Web应用程序的10个技巧
    很不错的jQuery学习资料和实例
    学习jQuery之旅
    50个常用的JQuery代码
    机器学习瓶颈
  • 原文地址:https://www.cnblogs.com/happySmily/p/5941813.html
Copyright © 2011-2022 走看看