摘 要
在基于JDBC的数据库实际应用开发中,对数据库连接的管理是一个重点也是一个难点,频繁对数据库的连接与关闭操作、多客户对数据库的并发访问,一定程度上决定了WEB系统的响应以及应用性能。使用数据库连接池方式能对数据库的连接进行管理和维护,上层应用程序通过数据库连接池使用数据库资源能提升系统性能,充分利用系统资源。文章通过介绍、分析数据库连接池工作的基本原理,了解目前流行的WEB服务器在数据库连接池方面的使用现状后,总结一了些数据库连接池开发程序中容易忽略的问题。并在学习掌握了实现连接池的关键技术后给出了一个较为高效的连接池管理策略,在这种策略思想的指导下实际开发出一个数据库连接池模块,使得上层应用通过本连接池访问数据库资源变得相对高效和容易,从实际上论证了这种设计方案的可行性。
关键词:连接池;数据库;JDBC;并发访问
Research and realization of the Database Connection Pool
Abstract
In the practically application development of database based on JDBC, the management of database connection is a key point and also a difficulty. The response and performance of the WEB system are depended on frequently connecting, closing and multi-user accessing in a certain extent. Using the Database Connection Pool can provide management and maintenance for connections of the database. The upper applications may access the database recourse via the Database Connection Pool, in order to upgrade system performance and fully utilize the system recourse. This article summarizes some issues which are easily ignored in the application development of the Database Connection Pool by the way of introducing and analyzing the basal working principles of the Database Connection Pool ,comprehending the using actuality of the Database Connection Pool on the popular WEB servers. Besides, I established a comparatively highly effective policy of the Connection Pool management after having learned and comprehended key technique of implementing the Connectivity Pool, and actually had developed a Database Connection Pool module under the guidance of that policy, causing the access of system resource by the upper applications via current Connectivity Pool becoming relatively highly effective and easy, demonstrated the feasibility of this design project in practice.http://www.16sheji8.cn/
Key words: Database Connection Pool; Database; JDBC; Concurrence access
目 录
论文总页数:22页
1 引言 1
1.1 课题背景 1
1.2 连接池的主要作用 1
1.3 目前流行的WEB服务器数据库连接池方面使用现状 1
1.3.1 DHCP介绍 2
1.3.2 Poolman介绍 2
1.3.3 C3P0介绍 2
1.3.4 其他连接池(自写连接池) 2
2 相关理论基础 3http://www.16sheji8.cn/
2.1 数据库概述 3
2.2 数据库连接池的基本原理 3
2.3 连接池中的关键技术 4
2.3.1 连接池的分配与释放 4
2.3.2 连接池的维护 5
3 系统总体设计思想及方案 5
3.1 连接池中的关键类设计 6
3.2 连接池中的管理机制 7
3.3 实现一个连接池的其他问题 8
3.3.1 事务处理 8
3.3.2 封装 9
3.3.3 并发 9
3.3.4 连接池的关闭 9
4 具体的设计流程和实现 10
4.1 连接池的建立 10
4.2 连接池的管理 12
4.3 连接池的关闭 14
4.4 连接池的测试 15
5 系统测试问题总结 15
5.1 连接池的泄露问题 15
5.1.1 产生现象 15
5.1.2 解决办法 16
5.2 多数据库服务器问题 17
结 论 19
参考文献 20
致 谢 21
声 明 22http://www.16sheji8.cn/
1 引言
1.1 课题背景
随着信息技术的高速发展与广泛应用,数据库技术在信息技术领域中的位置越来越重要。传统的开发模式是:首先在主程序(如Servlet、Beans)中建立数据库连接;然后进行SQL操作,对数据库中的对象进行查询、修改和删除等;最后断开数据库连接。使用这种开发模式,对于一个简单的数据库应用,由于数据库的访问不是很频繁,只需要在访问数据库时创建一个连接,用完后就关闭它,这样做不会明显增大系统的开销。但是对于一个复杂的数据库应用,情况就完全不同了,尤其是大型电子商务网站,同时可能有几百人甚至几千人在线。在这种情况下,用户操作频繁的建立、关闭数据库,会极大的降低系统的性能,增大系统的开销,迫使网站的响应速度下降,严重的甚至会造成服务器的崩溃。针对这些突出问题,采用运行速度更快、数据库访问效率更高的数据库连接池技术,以提高系统的运行效率将是至关重要的,因此本文提出了一种基于数据库连接池技术的有效解决方法。以加强对数据库操作的性能,改善资源使用率,提高应用程序的响应能力。
1.2 连接池的主要作用
一个应用系统,同时有几百人甚至几千人频繁的进行数据库连接操作势必占用很多的系统资源,严重的甚至会造成服务器的崩溃。对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将不得不重启数据库。还有,如果不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去,连接过多也可能导致内存泄漏,服务器崩溃。针对这些突出问题,因此提出了一种基于数据库连接池技术的有效解决方法。简而言之,数据库连接池主要作用是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不再是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。http://www.16sheji8.cn/
1.3 目前流行的web服务器数据库连接池方面使用现状
由于JDBC的API中没有提供连接池的方法。一些大型的WEB应用服务器如WebLogic、WebSphere等都自带有连接池。不同的是,tomcat并没有自已开发连接池,而是集成的apache的另外一个开源项目DBCP连接池。BEA的WebLogic自身带有一个连接池,这个连接池无法与WebLogic分离,但是也必须有其第三方的专用类方法支持连接池的用法,而不需要用户再去写一个连接池。以下是一些第三方连接池:http://www.16sheji8.cn/