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

目录:

1. 概述编辑

1.1 版本

报表服务器版本
功能变动
10.0.18
  • 「连接池设置」按钮改名为「高级设置」

  • 部分数据连接支持设置 fetchsize

11.0.2高级设置布局优化
11.0.23增加 fetchsize 参数配置
11.0.24优化平台数据连接中关于「连接校验」和「保活」相关的配置项

1.2 功能简介

本文将介绍数据连接高级设置的配置项中各参数的意义。

2. 具体介绍编辑

在连接 FineReport 时,用户可以在连接页面进行一些高级设置,平台和设计器都可以设置。

2.1 设计器高级设置

设计器设置页面如下图所示:

  • 常用设置

名称
druid学名默认值含义
最大活动连接数maxActive50
连接池在同一时间能够分配的最大活动连接的数量
获取连接前检验testOnBorrow申请连接时执行 validationQuery 检测连接是否有效
空闲连接可用性定期检查keepAlive
检查到需要留下的连接保证其可用
校验语句validationQuery默认语句
用来检测连接是否有效的 SQL 语句,要求是一个查询语句,常用select 'x' 。用户可自定义该语句。
最大等待时间maxWait10000
获取连接时最大等待时间,单位毫秒
  • 不太常用的连接池属性(如无特殊场景不建议修改)

名称druid学名默认值含义
初始化连接数
initialSize0连接池初始化时建立物理连接的个数
最小空闲连接数minIdle0
连接池中保持的最小空闲连接数量
归还连接前校验testOnReturn归还连接时执行validationQuery检测连接是否有效
开启空闲回收器校验testWhileIdle指明连接是否被空闲连接回收器(如果有)进行检验,如果检测失败,则连接将被从池中去除
空闲连接回收器休眠时间timeBetweenEvictionRunsMillis-1在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位
空闲连接回收检查数numTestPerEvictionRun3用于指定在每次空闲连接回收运行时要测试的连接数量
保持空闲最小时间值minEvictableIdleTimeMillis1800s连接保持空闲而不被驱逐的最小时间

2.2 平台高级设置

  • 常用连接池属性

28.jpg

名称  druid学名默认值
含义  
最大活动连接数maxActive50
连接池在同一时间能够分配的最大活动连接的数量
获取连接前检验testOnBorrow申请连接时执行 validationQuery 检测连接是否有效
空闲连接可用性定期检查keepAlive
检查到需要留下的连接保证其可用
校验语句validationQuery默认语句
用来检测连接是否有效的 SQL 语句,要求是一个查询语句,常用select 'x' 。用户可自定义该语句。
最大等待时间maxWait10000
获取连接时最大等待时间,单位毫秒
  • 「更多设置」中不太常用的连接池属性(如无特殊场景不建议修改)

27.jpg

名称
druid学名默认值含义
初始化连接数
initialSize0连接池初始化时建立物理连接的个数
最小空闲连接数minIdle0
连接池中保持的最小空闲连接数量
归还连接前校验testOnReturn
归还连接时执行validationQuery检测连接是否有效
获取连接时空闲连接可用性校验testWhiledle
指明连接是否被空闲连接回收器(如果有)进行校验,如果校验失败,则连接将被从池中去除
空闲连接回收器工作时间间隔

timeBetweenEvictionRunsMillis

60000ms(60s)该参数用于指定连接池中的空闲连接检测和清理线程运行的时间间隔,单位为毫秒。
空闲连接回收检查数

numTestPerEvictionRun

3
指定在每次空闲连接回收运行时要测试的连接数量
空闲连接回收时间阈值
minEvictableIdleTimesMillis
1800s如果一个连接在连接池中空闲时间超过了阈值,并且连接数超过了「最小空闲连接数」,那么该连接就会被从连接池中移除
空闲连接强制回收时间阈值maxEvictableIdleTimeMillis25200s(7h)
一个连接在连接池中空闲的时间超出了该阈值,会被从连接池中移除
空闲连接可用性定期检查时间阈值keepAliveBetweenTimeMillis120000ms(2min)
空闲连接的保持存活时间,可以确保在空闲一段时间后连接不会被意外关闭

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

  • fetchsize 设置

fetchSize 参数是用于控制从数据库中获取数据的批处理大小的设置。较小的 fetchSize 值会减少每次数据库查询的内存消耗,但可能需要更多的数据库往返来获取完整的结果集;较大的 fetchSize 值可以减少数据库往返次数,但会增加内存使用量。可以根据你的需求通过设置 fetchSize 参数值,来优化数据库查询性能。

若参数值 ≤ 0(例如:-20)则表示不开启 fetchsize 参数。

1)Oracle、DB2、Postgre 这三种数据库必须设置 fetchsize 参数,所以若设置了≤0 的参数值,会自动分别被替换为 128、50、10000。

2)其他数据库默认情况下不开启 fetchsize 参数。

用户也可在设计器中,对「Oracle、DB2、Postgre」数据连接设置 fetchsize。可输入 1~1,000,000 中的任意数值,若为空则表明不配置此项参数。

11.png

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)

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