连接池属性
1. 问题描述
FR连接池属性,使用的是DBCP连接池,下面介绍其设置方法及其属性中各参数的意义;如果访问模板时,报连接超时、等待状态,警告如下:
警告: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)
则需要把相应连接数调大。
2. 设置方法
点击服务器>定义数据连接
这里的信息都保存在%FR_HOME%\WebReport\WEB-INF\resources\datasource.xml文件下:
,如下图所示,点击 ,弹出 编辑框,调整最大活动连接数:这里的信息都保存在%FR_HOME%\WebReport\WEB-INF\resources\datasource.xml文件下:
<DBCPAttr
initialSize="1"
maxActive="200"
maxIdle="100"
minIdle="2"
maxWait="1000"
validationQuery="q"
testOnBorrow="false"
testOnReturn="true"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="1000"
numTestsPerEvictionRun="2"
minEvictableIdleTimeMillis="18005000"/>
3. 参数说明
名称 | 举例 | 含义 |
---|---|---|
初始化连接数 | 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,对空闲的连接不进行验证 |
最大活动连接数设置超过数据库中的连接数目,只能按照数据库中的连接数目为准,如想调至最大,则也要调整数据库中的连接数目,参考文档连接池满问题中的解决方案。
附件列表
标签:
已验证
文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201)