`

common pool 参数配置详解

 
阅读更多

最近再使用fastdfs上传时,需要用到连接池,用的是common pool 1.6,对于config里面的配置不是很了解,现在做个笔记记录一下:

maxActive:控制池中对象的最大数量,默认值为8,如果为负数表示没有限制

maxIdle:控制池中空闲的对象的最大数量,默认值为8,如果为负数表示没有限制

minIdle:控制池中对象的最小数量,默认值为0

whenExhaustedAction:

指定池中对象被消耗完以后的行为,有下面这些选择:

WHEN_EXHAUSTED_FAIL                  0

WHEN_EXHAUSTED_GROW             2

WHEN_EXHAUSTED_BLOCK             1

 

如果是WHEN_EXHAUSTED_FAIL,当池中对象达到上限以后,继续borrowObject会抛出NoSuchElementException异常。

如果是WHEN_EXHAUSTED_GROW,当池中对象达到上限以后,会创建一个新对象,并返回它。

如果是WHEN_EXHAUSTED_BLOCK,当池中对象达到上限以后,会一直等待,直到有一个对象可用。这个行为还与maxWait有关,如果maxWait是正数,那么会等待maxWait的毫秒的时间,超时会抛出NoSuchElementException异常;如果maxWait为负值,会永久等待。

 

whenExhaustedAction 的默认值是WHEN_EXHAUSTED_BLOCK,maxWait的默认值是-1。

 

maxWait

whenExhaustedAction 如果是WHEN_EXHAUSTED_BLOCK,指定等待的毫秒数。如果maxWait是正数,那么会等待maxWait的毫秒的时间,超时会抛出NoSuchElementException异常;如果maxWait为负值,会永久等待。

maxWait的默认值是-1。

 

testOnBorrow

如果testOnBorrow被设置,pool会在borrowObject返回对象之前使用PoolableObjectFactory的validateObject来验证这个对象是否有效,要是对象没通过验证,这个对象会被丢弃,然后重新选择一个新的对象。

 

testOnBorrow的默认值是false。

 

testOnReturn

如果testOnReturn被设置,pool会在returnObject的时候通过PoolableObjectFactory的validateObject方法验证对象,如果对象没通过验证,对象会被丢弃,不会被放到池中。

 

testOnReturn的默认值是false。

 

testWhileIdle

指定idle对象是否应该使用PoolableObjectFactory的validateObject校验,如果校验失败,这个对象会从对象池中被清除。

这个设置仅在timeBetweenEvictionRunsMillis被设置成正值(>0)的时候才会生效。

testWhileIdle的默认值是false。

 

timeBetweenEvictionRunsMillis

指定驱逐线程的休眠时间。如果这个值不是正数(>0),不会有驱逐线程运行。

timeBetweenEvictionRunsMillis的默认值是-1。

 

numTestsPerEvictionRun

设置驱逐线程每次检测对象的数量。

这个设置仅在timeBetweenEvictionRunsMillis被设置成正值(>0)的时候才会生效。

numTestsPerEvictionRun的默认值是3。

 

minEvictableIdleTimeMillis

指定最小的空闲驱逐的时间间隔(空闲超过指定的时间的对象,会被清除掉)。

这个设置仅在timeBetweenEvictionRunsMillis被设置成正值(>0)的时候才会生效。

minEvictableIdleTimeMillis默认值是30分钟。

 

softMinEvictableIdleTimeMillis

与minEvictableIdleTimeMillis类似,也是指定最小的空闲驱逐的时间间隔(空闲超过指定的时间的对象,会被清除掉),不过会参考minIdle的值,只有idle对象的数量超过minIdle的值,对象才会被清除。

这个设置仅在timeBetweenEvictionRunsMillis被设置成正值(>0)的时候才会生效,并且这个配置能被minEvictableIdleTimeMillis配置取代(minEvictableIdleTimeMillis配置项的优先级更高)。

softMinEvictableIdleTimeMillis的默认值是-1。

 

lifo

pool可以被配置成LIFO队列(last-in-first-out)或FIFO队列(first-in-first-out),来指定空闲对象被使用的次序。

lifo的默认值是true。

 

注:common pool 已经从1.* 变成common pool 2了,jedis pool 就是对common pool2 进行了封装,但是没有初始化值大小,而dbcp,或者c3p0等数据库连接池,也是对common pool 进行了封装,那种封装方式不错,可以参考。自己写的连接池或多或少都有问题。

 

 

分享到:
评论

相关推荐

    jedis2.9-common-pool

    《Jedis 2.9与Common Pool:Redis客户端与连接池详解》 Redis,作为一款高性能的Key-Value存储系统,被广泛应用于缓存、消息队列等多种场景。在Java开发中,Jedis是一个非常流行的Redis客户端库,而Jedis 2.9版本则...

    commons-pool2-2.8.1.jar

    《Apache Commons Pool 2.8.1:高效对象池实现详解》 Apache Commons Pool 是一个广泛使用的开源组件,主要用于提供对象池化的实现。在Java世界里,对象池化是一种优化资源管理的重要技术,通过复用已创建的对象,...

    ibatis 配置文件详解

    ### ibatis配置文件详解 #### 一、ibatis概述 ibatis,又称MyBatis,是一种优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。ibatis可以...

    jetty启动器资源配置文件

    ### Jetty启动器资源配置文件详解 #### 一、概述 Jetty是一款开源的Servlet容器,由Eclipse基金会维护。它支持最新的Java EE标准,并且具备轻量级、高性能等特点,适用于开发测试环境以及生产环境中的Web应用...

    AIX操作系统安装配置规范

    外部存储设置规范涵盖了外联存储多路径安装设置、多路径软件参数配置规范、以及应用服务器存储卷管理等方面。这些规范确保了外部存储设备能正确接入系统,并且高效地进行数据读写。 操作系统参数设置规范包括基本...

    common-sdbcp1.4.jar_itmop.com.zip

    《深入解析Apache Commons DBCP 1.4》 Apache Commons DBCP(Database Connection Pool)是Apache软件基金会开发的一个数据库连接池组件,它在Java应用程序中提供了数据库连接的池化管理。在Java环境中,DBCP是实现...

    WebLogic配置.pdf

    ### WebLogic配置详解 #### 一、WebLogic配置概述 WebLogic Server是一款广泛使用的Java应用服务器,由Oracle公司提供支持和服务。它不仅提供了强大的企业级功能,还支持高可用性和可伸缩性,适用于构建复杂的企业...

    使用DBCP链接池详解附加代码例子

    1. 添加依赖库:在Tomcat的`common\lib`目录下,需要放置`naming-factory-dbcp.jar`和`commons-pool.jar`这两个JAR文件,它们是DBCP连接池实现的核心。 2. 创建`context`文件:在`conf\Catalina\localhost`目录下...

    struts框架中数据源的配置

    ### Struts框架中数据源的配置详解 #### 一、引言 在现代软件开发过程中,特别是企业级应用开发中,Struts框架被广泛应用于构建MIS系统等复杂的应用程序。Struts框架作为一种成熟的MVC架构实现,为开发者提供了...

    WEB项目的配置步骤

    3. **CommonPool库**:对于某些特定的资源管理需求,如数据库连接池的管理。 4. **Spring AOP ASM库**:版本为2.2.3。 ### 二、Hibernate配置 接下来,在`applicationContext.xml`中定义Hibernate相关的Bean,主要...

    JDK安装配置非常详细的说明

    ### JDK安装配置详解 #### 一、安装与配置所需工具 在进行开发环境搭建之前,首先需要准备并配置好以下工具: - **JDK(Java Development Kit)**: Java 开发工具包,包含了编译、运行 Java 程序所需的环境。 - *...

    apache-commons源码及jar文件

    Commons-Digester 是一个 XML-Java对象的映射工具,用于解析 XML配置文件. Discovery Commons-Discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。. EL Commons-EL 提供在...

    MySQL 数据库安装与配置教程.docx

    ### MySQL 数据库安装与配置教程知识点详解 #### 一、MySQL 概述及特性 - **全球受欢迎的关系型数据库管理系统**:MySQL 以其卓越的可靠性和高性能在全球范围内被广泛使用,成为众多开发者首选的数据库解决方案。 ...

    WebLogic连接Oracle数据库

    ### WebLogic连接Oracle数据库配置详解 #### 一、概述 在企业级应用开发中,WebLogic作为一款成熟且稳定的应用服务器,被广泛应用于各种大型系统的部署。为了实现WebLogic与Oracle数据库之间的高效通信,需要对...

    Linux下安装mysql8.0及其配置文件设置.docx

    ### Linux下安装MySQL 8.0及其配置文件设置 #### 安装步骤详解 ##### 1.... - **选择安装版本**:对于CentOS 7用户,选择“Red Hat”作为操作系统...注意根据实际情况调整配置文件中的各项参数,以满足具体的应用需求。

    F5REST接口说明V1.3.docx

    F5 REST 接口是F5公司为管理其BIG-IP设备提供的一种基于HTTP协议的接口,遵循RESTful设计原则,允许用户通过发送HTTPS请求来配置、监控和管理F5设备上的各种服务,如虚拟服务器(Virtual Server)、池(Pool)等。...

    Struts2_Spring_Hibernate集成

    - Common-dbcp.jar、common-pool.jar、dom4j-1.6.1.jar等库用于增强项目的功能性和稳定性。 ##### 6. 修改web.xml - 更新web.xml文件,添加Struts2的过滤器配置和其他必要的初始化参数。 ##### 7. 增加struts....

    mysql ocp 5.6_SKY基于肖恩和ryanxu整理并添加部分解析 20160706.docx

    11. **PAM认证**:PAM(Pluggable Authentication Modules)的`common`配置文件通常定义全局认证规则,但在某些情况下,可能需要特定服务的独立配置文件。 12. **GRANT命令创建用户**:不指定`IDENTIFIED BY`子句时...

    weblogic9.2环境部署

    WebLogic Server 9.2 环境部署详解 WebLogic Server 是一款由 Oracle 公司提供的企业级 Java 应用服务器,它提供了一个用于开发、集成、部署和管理Java EE应用程序的平台。本篇文章将详细阐述如何在Windows环境下...

Global site tag (gtag.js) - Google Analytics