帆软报表解决Connection closed问题

2021-01-08  

帆软报表的数据源配置信息在 WEB-INF\resources\datasource.xml

Connection-JDBCDatabaseAttr 节点里可在 DBCPAttr 节点上配置数据库连接池的参数,如以下是为了解决 Connection 会在一小段时间内被 Close 的配置


不保留空闲连接、拿连接、归还、空闲都校验连接是否有效。

<DBCPAttr
initialSize="8"
maxActive="80"
maxIdle="2"
minIdle="0"
maxWait="10000"
validationQuery="select 1 from dual"
testOnBorrow="true"
testOnReturn="true"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="30000"
numTestsPerEvictionRun="2"
minEvictableIdleTimeMillis="180000"/>


参数说明:

名称

举例

含义

初始化连接数

initialSize="1"

初始化线程数,开始自动建立一个与数据库的连接

最大活动连接数

maxActive="200"

可以从对象池中取出的对象最大个数,为0表示没有限制

最大空闲连接数

maxIdle="100"

最大等待连接中的数量,设为负数则没有限制(对象池中对象最大个数)

最小空闲连接数

minIdle="2"

对象池中对象最小个数

最大等待时间(毫秒)

maxWait="1000"

最大等待时间,单位为ms,超出时间会丢出错误信息

SQL验证查询

validationQuery="SQL语句"

验证连接是否成功,SQL和SELECT指令至少要返回一行

获取连接前检验

testOnBorrow="false"

取得对象时是否进行验证,检查对象是否有效,默认为false

归还连接前检验

testOnReturn="true"

返回对象时是否进行验证,检查对象是否有效,默认为false

开启空闲回收器检验

testWhileIdle="true"

空闲时是否进行验证,检查对象是否有效,默认为false

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

timeBetweenEvictionRunsMillis="1000"

失效检查线程运行时间间隔,如果小于等于0,不会启动检查线程

空闲连接回收检查数

numTestsPerEvictionRun="2"

失效检查线程运行次数

保持空闲最小时间

minEvictableIdleTimeMillis="18005000"

大于0,进行连接空闲时间判断,或为0,对空闲的连接不进行验证


官方文档说明:https://help.finereport.com/finereport8.0/doc-view-292.html

 

ConstXiong 备案号:苏ICP备16009629号-3