历史版本26 :数据连接高级设置 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

FR 连接池属性,使用的是 DBCP 连接池,本文将介绍其设置方法及其属性中各参数的意义。

2. 具体介绍编辑

2.1 设置连接池属性

在 FineReport 设计器中点击「服务器>定义数据连接」,选择某个数据连接,点击「连接池属性」,可设置连接池属性。如下图所示:

7.png

2.2 各参数介绍

其中连接池属性的各参数说明如下表所示:

名称  举例  含义  
初始化连接数initialSize="1"连接池启动时创建的初始化连接数量
最大活动连接数maxActive="200"连接池在同一时间能够分配的最大活动连接的数量,如果设置为非正数则表示不限制
最大空闲连接数maxIdle="100"连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制
最小空闲连接数minIdle="2"连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为 0 则不创建
最大等待时间(毫秒)maxWait="1000"当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为 -1 表示无限等待
SQL 验证查询validationQuery="SQL语句"用来验证从连接池取出的连接,在将连接返回给调用者之前如果指定,则查询必须是一个 SQL SELECT 并且必须返回至少一行记录
获取连接前检验testOnBorrow="false"

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

归还连接前检验testOnReturn="true"

指明是否在归还到池中前进行检验

开启空闲回收器检验testWhileIdle="true"

指明连接是否被空闲连接回收器(如果有)进行检验,如果检测失败,则连接将被从池中去除

空闲连接回收器休眠时间(毫秒)

timeBetweenEvictionRunsMilli

s="1000"

在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位.。如果设置为非正数,则不运行空闲连接回收器线程
空闲连接回收检查数numTestsPerEvictionRun="2"在每次空闲连接回收器线程(如果有)运行时检查的连接数量
保持空闲最小时间

minEvictableIdleTimeMilli

s="18005000"

连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值

最大活动连接数设置超过数据库中的连接数目,只能按照数据库中的连接数目为准,如想调至最大,则也要调整数据库中的连接数目,参考文档 连接池满问题 中的解决方案。

3. 注意事项编辑

如果访问模板时,报连接超时、等待状态,警告如下所示:

警告:Cannot get a connection, pool error Timeout waiting for idle object
at com.fr.third.org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:114)
at com.fr.third.org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at com.fr.data.pool.MemoryConnection.create(Unknown Source)
at com.fr.data.impl.JDBCDatabaseConnection.createConnection(Unknown Source)

则需要把相应连接数调大。