最近再使用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 进行了封装,那种封装方式不错,可以参考。自己写的连接池或多或少都有问题。
相关推荐
《Jedis 2.9与Common Pool:Redis客户端与连接池详解》 Redis,作为一款高性能的Key-Value存储系统,被广泛应用于缓存、消息队列等多种场景。在Java开发中,Jedis是一个非常流行的Redis客户端库,而Jedis 2.9版本则...
《Apache Commons Pool 2.8.1:高效对象池实现详解》 Apache Commons Pool 是一个广泛使用的开源组件,主要用于提供对象池化的实现。在Java世界里,对象池化是一种优化资源管理的重要技术,通过复用已创建的对象,...
### ibatis配置文件详解 #### 一、ibatis概述 ibatis,又称MyBatis,是一种优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。ibatis可以...
### Jetty启动器资源配置文件详解 #### 一、概述 Jetty是一款开源的Servlet容器,由Eclipse基金会维护。它支持最新的Java EE标准,并且具备轻量级、高性能等特点,适用于开发测试环境以及生产环境中的Web应用...
外部存储设置规范涵盖了外联存储多路径安装设置、多路径软件参数配置规范、以及应用服务器存储卷管理等方面。这些规范确保了外部存储设备能正确接入系统,并且高效地进行数据读写。 操作系统参数设置规范包括基本...
《深入解析Apache Commons DBCP 1.4》 Apache Commons DBCP(Database Connection Pool)是Apache软件基金会开发的一个数据库连接池组件,它在Java应用程序中提供了数据库连接的池化管理。在Java环境中,DBCP是实现...
### WebLogic配置详解 #### 一、WebLogic配置概述 WebLogic Server是一款广泛使用的Java应用服务器,由Oracle公司提供支持和服务。它不仅提供了强大的企业级功能,还支持高可用性和可伸缩性,适用于构建复杂的企业...
1. 添加依赖库:在Tomcat的`common\lib`目录下,需要放置`naming-factory-dbcp.jar`和`commons-pool.jar`这两个JAR文件,它们是DBCP连接池实现的核心。 2. 创建`context`文件:在`conf\Catalina\localhost`目录下...
### Struts框架中数据源的配置详解 #### 一、引言 在现代软件开发过程中,特别是企业级应用开发中,Struts框架被广泛应用于构建MIS系统等复杂的应用程序。Struts框架作为一种成熟的MVC架构实现,为开发者提供了...
3. **CommonPool库**:对于某些特定的资源管理需求,如数据库连接池的管理。 4. **Spring AOP ASM库**:版本为2.2.3。 ### 二、Hibernate配置 接下来,在`applicationContext.xml`中定义Hibernate相关的Bean,主要...
### JDK安装配置详解 #### 一、安装与配置所需工具 在进行开发环境搭建之前,首先需要准备并配置好以下工具: - **JDK(Java Development Kit)**: Java 开发工具包,包含了编译、运行 Java 程序所需的环境。 - *...
Commons-Digester 是一个 XML-Java对象的映射工具,用于解析 XML配置文件. Discovery Commons-Discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。. EL Commons-EL 提供在...
### MySQL 数据库安装与配置教程知识点详解 #### 一、MySQL 概述及特性 - **全球受欢迎的关系型数据库管理系统**:MySQL 以其卓越的可靠性和高性能在全球范围内被广泛使用,成为众多开发者首选的数据库解决方案。 ...
### WebLogic连接Oracle数据库配置详解 #### 一、概述 在企业级应用开发中,WebLogic作为一款成熟且稳定的应用服务器,被广泛应用于各种大型系统的部署。为了实现WebLogic与Oracle数据库之间的高效通信,需要对...
### Linux下安装MySQL 8.0及其配置文件设置 #### 安装步骤详解 ##### 1.... - **选择安装版本**:对于CentOS 7用户,选择“Red Hat”作为操作系统...注意根据实际情况调整配置文件中的各项参数,以满足具体的应用需求。
F5 REST 接口是F5公司为管理其BIG-IP设备提供的一种基于HTTP协议的接口,遵循RESTful设计原则,允许用户通过发送HTTPS请求来配置、监控和管理F5设备上的各种服务,如虚拟服务器(Virtual Server)、池(Pool)等。...
- Common-dbcp.jar、common-pool.jar、dom4j-1.6.1.jar等库用于增强项目的功能性和稳定性。 ##### 6. 修改web.xml - 更新web.xml文件,添加Struts2的过滤器配置和其他必要的初始化参数。 ##### 7. 增加struts....
11. **PAM认证**:PAM(Pluggable Authentication Modules)的`common`配置文件通常定义全局认证规则,但在某些情况下,可能需要特定服务的独立配置文件。 12. **GRANT命令创建用户**:不指定`IDENTIFIED BY`子句时...
WebLogic Server 9.2 环境部署详解 WebLogic Server 是一款由 Oracle 公司提供的企业级 Java 应用服务器,它提供了一个用于开发、集成、部署和管理Java EE应用程序的平台。本篇文章将详细阐述如何在Windows环境下...