张 艳
(山东信息职业技术学院 山东 261061)
计算机技术发展以来,计算机考试系统也得到了迅速发展,从软件技术方面看,计算机考试系统大致经历了三个阶段:单机考试系统、网络考试系统、远程考试系统。单机考试系统和网络考试系统以C/S架构为主,远程考试系统以B/S或者B/S与C/S相结合的架构为主。目前,以B/S架构为主的远程考试系统逐渐成为考试系统的主流架构,本文探讨的就是基于JAVA的B/S架构的远程考试系统。使用简单的数据库操作,不仅会增加系统的开销,而且还容易忘记释放连接导致内存溢出,最终导致系统崩溃的问题。本基于JAVA的考试系统对数据库连接池技术进行了研究和改进,使得考试系统的性能获得明显的改进。
数据库连接池的基本原理就是将预先建立的连接存放至内存对象中以备系统进行调用。数据库连接池起到了一个连接缓冲池的作用。当考试系统需要建立一个数据库连接时,只需要从连接池中取出一个连接即可,不需要新建数据库连接。而且,在进程使用完数据库连接后,只需要将连接存放回至数据库连接池即可,也不要对其进行关闭。假若连接池的数据库连接数量不够使用,则连接的建立和关闭都是由连接池来管理,降低了程序出错的几率。
本考试系统是通过调用Weblogic连接池的ContextManager类进行实现的,类ContextManager是由JAVA进行实现的,并且获取连接池的连接是通过jndi的方式进行获取的,获取连接池,直接提供给访问者进行使用。
通过getInitConnection方法获取数据库连接池的连接后,任何一个程序需要对数据库进行连接时,只需要调用conn= getInitConnection()即可获取数据库连接。
本系统使用Jmeter测试软件对未使用连接池的考试系统和使用连接池的考试系统进行系统性能的测试与分析比较。本课题以考试系统中获取考试题目为例,分别使用不同的并发用户数量对连接池的考试系统和使用连接池的考试系统进行测试,连接池初始连接数设置为10,最大连接数设置为50.测试结果如表1所示。
并发数 无连接池耗时 有连接池耗时 性能提升1 60ms 30 ms 50%5 100 ms 40.1 ms 59.9%10 375.5 ms 113.6 ms 69.5%20 366.7 ms 181.7 ms 50.3%40 647.3 ms 336.4 ms 48.2%
由表1可以看出,使用连接池的考试系统性能得到大幅度提升,约为不适用连接池的考试系统性能的50%左右。当并发用户数量为10时,系统性能提升最为显著,性能提升比例为69.5%。然而本测试系统的数据库连接池的初始连接数设置为10,因此连接池的配置参数对系统性能也有较大的影响。
数据库连接池技术已经成为当前Java应用程序提高系统数据库访问效率的至关重要的关键技术之一,本文详细介绍了在基于Java的远程网络考试系统中使用数据库连接池的原理和设计方法,并对数据库连接池进行优化的考试系统进行了测试与分析,测试结果表明,使用数据库连接池的考试系统的性能得到了大幅度的提升,并且还可以有效降低系统出错的概率,降低系统开销。而且,数据库连接池的参数配置对系统的性能提升也有至关重要的作用。
[1]陈帅.计算机考试系统研究[J].淮南师范学院学报,2012,21(3):42-44
[2]罗荣,唐学兵.基于JDBC的数据库连接池的设计与实现[J].计算机工程,2011,5(2):31-34.
[3]商杰,朱战立.数据库连接池技术研究与应用[J].现代电子技术,2012.3:127-129.
[4]李美满,易德成.通用考试系统开放题库与组卷及评卷算法研究[J].计算机工程与设计.2005.10:65-68
[5]李鹏,王汝传.通用考试系统的设计与实现[J].南京邮电大学学报(自然科学版),2012.06(1):24-26.