文档章节

数据分析软件FineReport连接池原理

iris_1992
 iris_1992
发布于 2015/05/12 15:53
字数 1072
阅读 14
收藏 0

数据分析软件FineReport连接池原理

连接池主要由三部分组成:连接池的建立、连接池中连接使用的治理、连接池的关闭。下面就着重讨论这三部分及连接池的配置问题。

1. 连接池原理

连接池技术的核心思想,是连接复用,通过建立一个数据库连接池以及一套连接使用、分配、治理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。

另外,由于对JDBC中的原始连接进行了封装,从而方便了数据库应用对于连接的使用(特别是对于事务处理),提高了开发效率,也正是因为这个封装层的存在,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能。

1.1 连接池的建立

应用程序中建立的连接池其实是一个静态的。所谓静态连接池是指连接池中的连接在系统初始化时就已分配好,且不能随意关闭连接。Java中提供了很多容器类可以方便的构建连接池,如:Vector、Stack、Servlet、Bean等,通过读取连接属性文件Connections.properties与数据库实例建立连接。在系统初始化时,根据相应的配置创建连接并放置在连接池中,以便需要使用时能从连接池中获取,这样就可以避免连接随意的建立、关闭造成的开销。

1.2 连接池的治理

连接池治理策略是连接池机制的核心。当连接池建立后,如何对连接池中的连接进行治理,解决好连接池内连接的分配和释放,对系统的性能有很大的影响。连接的合理分配、释放可提高连接的复用,降低了系统建立新连接的开销,同时也加速了用户的访问速度。下面介绍连接池中连接的分配、释放策略。

连接池的分配、释放策略对于有效复用连接非常重要,我们采用的方法是一个很有名的设计模式:Reference Counting(引用记数)。该模式在复用资源方面应用的非常广泛,把该方法运用到对于连接的分配释放上,为每一个数据库连接,保留一个引用记数,用来记录该连接的使用者的个数。

1.3 连接池的关闭

当应用程序退出时,应关闭连接池,此时应把在连接池建立时向数据库申请的连接对象统一归还给数据库(即关闭所有数据库连接),这与连接池的建立正好是一个相反过程。

连接池分配一个连接后如定义一个数据集,点击预览,执行完对应的sql语句会将所占用的连接归还连接池。

2. 连接池的配置

数据库连接池中到底要放置多少个连接,才能使系统的性能更佳,用minConn和maxConn来限制。

minConn是当应用启动的时候连接池所创建的连接数,假如过大启动将变慢,但是启动后响应更快;假如过小启动加快,但是最初使用的用户将因为连接池中没有足够的连接不可避免的延缓了执行速度。因此应该在开发的过程中设定较小minConn,而在实际应用的中设定较大minConn。maxConn是连接池中的最大连接数,可以通过反复试验来确定此饱和点。

为此在连接池类ConnectionPool中加入两个方法getActiveSize()和getOpenSize(),ActiveSize 表示某一时间有多少连接正被使用,OpenSize表示连接池中有多少连接被打开,反映了连接池使用的峰值。将这两个值在日志信息中反应出来, minConn的值应该小于平均ActiveSize,而maxConn的值应该在activeSize和OpenSize之间。


© 著作权归作者所有

共有 人打赏支持
iris_1992
粉丝 1
博文 25
码字总数 23873
作品 0
无锡
程序员
私信 提问
炫酷报表工具 FineReport 9.0新特性预览

  【IT168 技术】FineReport是由帆软开发的一款商用报表软件,本质来说是一个通用的报表制作和数据可视化工具。因为其应用场景广泛,操作方式简单,在业内拥有不错的口碑。   近日,帆软...

it168网站
2017/11/21
0
0
用FineReport报表系统构建ITIL流程系统变更分析

用FineReport报表系统构建ITIL流程系统变更分析 注:此文为“帆软十年,项册征集”活动的获奖作品。 一、应用背景 随着ITIL的发展和深入,为提高IT服务管理的质量,某银行上线一套符合ITIL的...

Sherlynn
2015/04/29
0
0
电信业务支撑报表开发工具解决方案

电信业务支撑报表开发工具解决方案 电信现状 现今中国电信为了运营方便,采用了多套系统进行日常运营支撑,但是在运营中面临了如下两点难处: 1:不及时。新业务比如说政企招财宝开通时,由于...

Sherlynn
2015/04/28
0
0
FineReport连接多维数据库示例及操作

1. 描述 FineReport连接多维数据库,首先要通过数据连接将多维数据库与FineReport连接起来,然后在数据连接的基础上新建多维数据库XMLA数据集,用于模板设计。 2.XMLA数据连接 2.1描述 多维数...

雄霸天下啦
06/26
0
0
tomcat部署FineReport成功,访问reportlets下的自带模板cpt文件提示数据集配置错误

FineReport是一款数据展示(报表)、数据查询(参数)和数据录入(填报)功能集于一身,用来辅助开发基于BS软件系统的工具,能够革命性地加快软件开发速度,提高软件稳定性。他本质上还是一个servl...

两天三顿
2017/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Pure-ftpd搭建FTP

12月11日任务 15.4 xshell使用xftp传输文件 15.5 使用pure-ftpd搭建ftp服务 使用pure-ftpd搭建FTP服务 轻量的ftp软件 安装pure-ftpd并修改配置文件 # pure-ftpd为epel扩展库里的软件[root...

robertt15
12分钟前
2
0
开源 serverless 产品原理剖析(二) - Fission

背景 本文是开源 serverless 产品原理剖析系列文章的第二篇,关于 serverless 背景知识的介绍可参考文章开源 serverless 产品原理剖析(一) - Kubeless,这里不再赘述。 Fission 简介 Fiss...

阿里云官方博客
19分钟前
1
0
Android面试整理(附答案)

面试,无非都是问上面这些问题(挺多的 - -!),聘请中高级的安卓开发会往深的去问,并且会问一延伸二。以下我先提出几点重点,是面试官基本必问的问题,请一定要去了解! 基础知识 – 四大组...

终端研发部
23分钟前
3
0
Vue 改变数组触发视图更新

Vue 改变数组触发视图更新 以下方法调用会改变原始数组 push(), pop(), shift(), unshift(), splice(), sort(), reverse()push()push() 方法可向数组的末尾添加一个或多个元素,并返回新的...

不负好时光
29分钟前
2
0
计算机系统要素 C5

本章值得一提的是组织计算机的结构。Hack 的指令和数据是分开存储的,因此它的 CPU 有两个 input: IN inM[16], // M value input (M = contents of RAM[A]) instruction[16],...

lionets
45分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部