反馈已提交

网络繁忙

数据连接高级设置

  • 文档创建者:文档助手1
  • 历史版本:37
  • 最近更新:Lily.Wang 于 2024-03-12
  • 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)

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

    附件列表


    主题: 数据准备
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持