00:00
我们再来看一下harm的配置文件。这个配置文件呢,就是我们前面已经讲过的这个。Let CFg.XML。前面我们已经写过两次了哈,这里面包含着两部分信息,一个是harmon数据库连接的基本信息,还有一个harmle的基本信息。但实际上呢,还有一些配置项值得我们关注,我们现在就来看一下其他的配置项。Harmt配置文件harm类配置文件主要用于配置数据库连接跟harm类运行时所需的各种属性。每个Hart配置文件对应着一个configuration对象。的配置文件可以有两种格式,一个是properties,还有一个是XML,这个properties是啥样的呀?我们可以找到harmlet安装包。
01:00
Harm。再找到project ETC这块呢,就有一个harmon proper,打开proper表示是一个资源文件,里边放的是键值,对类类似于这样的格式,不过这个中间呢,你需要加一个等号。等这。这种方式呢,我们就不推荐了哈,我们现在哎统一。建议大家使用这个XML的格式。配置文件的常用属性啊,连接数据库的基本信息啊,方言,这个前面我们已经详细的阐述过了。C3P0数据源连接值属性。这哈姆里边呢,可以来配置C3P0数据源,通过前面的学习我们知道。我们在企业级开发的项目里面,我们一定要使用一款数据源产品。不可能说我需要一个链接,从数,从数据库里边拿一个,需要一个拿一个,不需要的时候再销毁。
02:07
那样的话呢,是对资源的极大浪费。下面我们就来看一下如何来配置C3P0数据源。笔记。Not。在中使用C3P0。数据源。分为两步。第一步。导入。第二步。加入。小包。我们看一下c harm安装包。Li。Optional c3P,零,全部的。
03:05
你。压到内镜下。做一下笔记哈。这个下边的新点下。特殊配置项。配置项呢,就是我现在这里边列出的配置项。我们来调整一下这个配水箱的顺序,然后我们来进行说明。先说前三项。第一项。数据库连接池中的最大连接数。第二项,数据库连接池中的最小连接数。
04:01
第三项,Acquire agreement,当数据库连接池中链接耗尽时,同一时刻。获取多少个数据库链接?我们来解释一下哈。当前应用没有任何请求,没有任何并发,这个时候在连接池里边也要保持一定量的链接连接数,就是这个inside。当前应用有高并发,并发量特别大。我能够使用的数据库连接数最多,Max size,而不是无穷的。笑。数据库服务器需要链接,因为那样式的话呢,这个数据库服务器也受不了。好了,那我再由这个mean size到mark size,这个过程中就是我这个链接不够了,我一次向数据库连接要多少个链接?啊,我一次向数据库服务器有多少个链接啊。是一次要一个吗?当然不是一次要acquire agreement。
05:03
要这些,比方说我一次要十个,或者一次要20个,一个一个要的话,这个效率太低了。Timeout的过期时间,数据库连接池中链接对象多长时间没有使用后应该被销毁。还有一个I test period表示。数据库连接池检测线程多长时间,检测一次池内所有链接是不是超时,连接池本身不会把这个链接从连接池里边移除,而是专门有一个线程,按照一定的时间间隔来做这件事。这个线程通过比较。链接最后一次使用时间和当前时间的时间差跟timeout做比对,进而决定这个链接对象是不是超时。什么意思呢?
06:01
并发量特别大的时候,最多可能是有mark set链接,这个时候啊,我这个并发量下来了。那这个时候我有一些链接可能就需要被销毁,因为我数据库连接池里边只要保持mean size就可以了,对吧。好了,那么我这些个链接怎么被销毁呢?它自己是不会销毁的,他自己也不会从数据库连接池里边慢慢溜走,这个时候我们需要有一个检测线程去检测的。呃,看你这个链接是不是需要被销毁了。那怎么看呢?哎,我需要来看一个过期时间,我我看当前的系统时间和你这个链接最后的使用时间,这个时间差跟timeout比,如果要是大于等于它的话,销毁。啊,这就是我们这两个配置项的意义。最后一个max statements c3P0还可以来缓存statement对象的数量。
07:06
OK,配置一下。配置C3P0数据源。Property。第一个是mark。职高。我现在这个并不是生产环境啊,在这个项目里边呢,我们这个数量肯定是需要调整的哈。电仔。五个。Property。Acquire agreement。两个。
08:00
It period。两秒。习时间。Time out。两秒。De。职高。OK,那他配好了,配好之后的话呢,我们需要测试一下。我们找到我们前面写的这个。多个方法,看这个时候打的这个链接是不是来自于C3P0就可以了。找一个。OK,来自于C3P0,这样的话呢,我这个C3P0数据源就配完了。
09:02
下边我们看so circle form my circle h bm to d dl叫auto。说过了再说两个配置项,第一个叫fetch size,第二个叫bech size。Fetch size实质上呢,是调用这个statement的set size方法设定JDBC的statement读取数据时,每次从数据库里边读取的记录数。什么意思呢?比方说我一次需要查1万条记录,这个时候对于Oracle GDP驱动而言呢,它并不是一次把这1万条记录都取出来,而是一次只读取这些条。当我这些条被这个用完以后的话呢,我再读这些条,这样的话呢,将会节省无谓的内存消耗,比方说我一次把这1万条记录我都拿了。到外部服务器里边,这个时候是不是占外部服务器的这个内存呢。
10:03
啊,这个值呢,设置的越大,读取数据库的次数越少,速度越快。但是对。外部服务器这个资源的消耗越严重。这个值设置的越小,读。数据库的次数越多,速度越慢,但是这个时候对这个web服务器的这个内存的损耗越小,所以说的话呢,我们需要取一个中间值,这个值取100比较合适。这就是我们这个fetch size。配一下吧。Bach said。Property。Harm and。It'be CD exercise。Back。下一个。要按在设定对数据库进行批量操作的时候,批次的大小,就是我们前面JDBC的时候,我们讲那个批量操作那个批次的批次的大小。
11:11
啊,类似于设置缓冲区大小的概念,这个值越大。我向。Circle扣,我发的这个circle的次数就越少,速度就越快,那么这个的话呢,也会取到一个中间值,这个值取30比较合适。Property。ABC一点半着赛局。单十保存这里边比较郁闷的一个呀,说我设置这个配置项跟这个配置项对于买circle口是无效的,但对于凹入口是有效的。好了。这是我们以上讲的另外的两个配置项。那其他的配置项呢?我们可以来参看官方文档的这个用户手册。
12:04
找到document手册。Enus这个没有中文的哈,Single打开。往下翻在哪啊。Configuration配置可选的配置项啊,其他的配置项的话呢,在这块大家要是需要看的话,过来看这个文档就可以了。我们在后边随着我们讲这个技术的足够深入,比方说我们需要讲到使用二级缓存,使用查询缓存,那个时候的话呢,我们还需要来配置其他的配置项。
我来说两句