`
shenyuc629
  • 浏览: 193757 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

数据库连接池的基本工作原理

    博客分类:
  • Java
阅读更多
JDBC 概述
   JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系型数据库(如Oracle、Sybase、SQL Server、Access等)提供统一访问接口,它由一组Java语言编写的类和接口组成,使数据库开发人员能够用标准JavaAPI编写数据库应用程序。
连接池技术
   1、连接池原理
      连接池技术的核心思想是:连接复用,通过建立一个数据库连接池以及一套连接使用、分配、管理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。另外,由于对JDBC中的原始连接进行了封装从而方便了数据库应用对于连接的使用(特别是对于事物处理),提高了开发效率,也正是因为这个封装层的存在,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能。连接池主要由三部分组成:连接池的建立、连接池中连接的使用管理、连接池的关闭。

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

连接池的管理:
   连接池管理策略是连接池机制的核心。当连接池建立后,如何对连接池中的连接进行管理,解决好连接池内连接的分配和释放,对系统的性能有很大的影响。连接的合理分配、释放可提高连接的复用,降低了系统建立新连接的开销,同时也加速了用户的访问速度。下面介绍连接池中连接的分配、释放策略。连接池的分配、释放策略对于有效复用连接非常重要,我们采用的方法是一个很有名的设计模式:Reference Counting(引用记数)。该模式在复用资源方面应用的非常广泛,把该方法运用到对于连接的分配释放上,为每一个数据库连接,保留一个引用记数,用来记录该连接的使用者的个数。具体的实现方法是:当客户请求数据库连接时,首先查看连接池中是否有空闲连接(指当前没有分配出去的连接)。如果存在空闲连接,则把连接分配给客户并作相应处理(即标记该连接为正在使用,引用计数加1)。如果没有空闲连接,则查看当前所开的连接数是不是已经达到maxConn(最大连接数),如果没达到就重新创建一个连接给请求的客户;如果达到就按设定的maxWaitTime(最大等待时间)进行等待,如果等待maxWaitTime后仍没有空闲连接,就抛出无空闲连接的异常给用户。当客户释放数据库连接时,先判断该连接的引用次数是否超过了规定值,如果超过就删除该连接,并判断当前连接池内总的连接数是否小于minConn(最小连接数),若小于就将连接池充满;如果没超过就将该连接标记为开放状态,可供再次复用。可以看出正是这套策略保证了数据库连接的有效复用,避免频繁地建立、释放连接所带来的系统资源开销。

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


连接池的配置:
   数据库连接池中到底要放置多少个连接,才能使系统的性能更佳,用minConn和maxConn来限制。minConn是当应用启动的时候连接池所创建的连接数,如果过大启动将变慢,但是启动后响应更快;如果过小启动加快,但是最初使用的用户将因为连接池中没有足够的连接不可避免的延缓了执行速度。因此应该在开发的过程中设定较小minConn,而在实际应用的中设定较大minConn。maxConn是连接池中的最大连接数,可以通过反复试验来确定此饱和点。为此在连接池类ConnectionPool中加入两个方法getActiveSize()和getOpenSize(),ActiveSize 表示某一时间有多少连接正被使用,OpenSize表示连接池中有多少连接被打开,反映了连接池使用的峰值。将这两个值在日志信息中反应出来, minConn的值应该小于平均ActiveSize,而maxConn的值应该在activeSize和OpenSize之间。
分享到:
评论

相关推荐

    数据库连接池的图解原理

    数据库连接池的图解原理 一般情况下,在使用开发基于数据库的WEB程序时,传统的模式基本是按以下步骤: 1. 在主程序(如Servlet、Beans)中建立数据库连接。 2. 进行SQL操作,取出数据。 3. 断开数据库连接。...

    数据库的连接池原理,基本概念及原理,服务器自带的连接池

    数据库的连接池原理的讲解 基本概念及原理 服务器自带的连接池 并发问题 多数据库服务器和多用户 事务处理 连接池的分配与释放 连接池的配置与维护

    数据库连接池的基本原理

    数据库连接池数据库连接池数据库连接池数据库连接池

    java数据库连接池

    数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接, 当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。 我们可以通过设定连接池最大连接数...

    C3P0数据库连接池驱动.zip

    数据库连接池的基本原理就是为数据库建立一个缓冲池。在缓冲池中先创建指定数量的数据库连接,当有连接请求时就从缓冲池中取出处于“空闲”状态的连接,并将此连接标记为“忙碌”,直到该请求进程结束后,它所使用的...

    数据库连接池原理

    数据库 连接池 原理 ...数据库连接池技术是解决这个问题最常用的方法,在许多应用程序服务器(例如:Weblogic,WebSphere,JBoss)中,基本都提供了这项技术,无需自己编程,但是,深入了解这项技术是非常必要的。

    基于JAVA JSP数据库连接池的研究与实现的毕业设计,使用数据库连接池方式能对数据库的连接进行管理和维护,上层应用程序通过数据

    文章通过介绍、分析数据库连接池工作的基本原理,了解目前流行的WEB服务器在数据库连接池方面的使用现状后,总结了一些数据库连接池开发程序中容易忽略的问题。并在学习掌握了实现连接池的关键技术后给出了一个较为...

    基于Java数据库连接池的研究与创新

    面向对象软件设计是当今软件设计模式的潮流,而基于面向对象软件设计方法的数据库连接池是其中的一个重要的研究课题。本文首先介绍了传统连接、tomcat下连接池和hibernate下连接池的基本原理,然后在此基础上提出了...

    一种基于JSP数据库连接池的研究与实现(含jsp源码和文章说明和数据库).rar

    文章通过介绍、分析数据库连接池工作的基本原理,了解目前流行的WEB服务器在数据库连接池方面的使用现状后,总结了一些数据库连接池开发程序中容易忽略的问题。并在学习掌握了实现连接池的关键技术后给出了一个较为...

    Java-jdbc数据库连接池总结.doc

    Java应用程序访问数据库的基本原理  在Java语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁,  即Java语言通过JDBC技术访问数据库。JDBC是一种“开放”的方案,它为数据库应用开发人员﹑...

    Java建立数据库连接池

    对于一个简单的数据库引用,用于对数据库的访问不是很频繁。这时可以简单的在需要访问数据库是,创建一个连接,用完后关闭它,这样...  数据库连接池的基本原理是在内部对象池中维护一定数量的数据库连接,并对外暴露

    JDBC数据库编程实验

    一、实验目的: ...(5)理解数据库连接池的基本原理和思想,学会在tomcat服务器中配置数据库连接池,并掌握从连接池中获取连接的基本方法。 (6)初步理解数据访问层的基本设计方法,理解web的分层架构。

    数据源与连接池

    . 连接池基本的思想,原理 数据库连接池技术的优点: c3p0的使用

    Tomcat 7-dbcp配置数据库连接池详解

    Tomcat 7-dbcp配置数据库连接池详解 原理  关于连接池,大家都晓得用来限定对数据库的连接。基本的原理是预先在缓冲池中放入一定的空闲连接,当程序需要和数据库来交互时,不是直接新建数据库连接而是在连接池中...

    JSP软件开发中数据库连接池技术的探讨与应用 (2007年)

    结合传统情况在开发基于数据库的Web应用时,对后台数据库的访问模式...描述了数据库连接池的基本概念、工作原理,分析了关键问题,并且以tomcat服务器上实现MySQL数据库连接池和编写数据库连接池类为例,实现连接池的应用。

    基于JDBC的数据库连接池技术研究与应用

    近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用。  基于B/S(Browser/Server)架构的3层开发...Java应用程序访问数据库的基本原理  

    完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx

    完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第22章 常用框架的介绍以及环境搭建(共16页).pptx JS课程案例...

    数据库连接池技术及其在Weblogic Server中的配置 (2006年)

    在分析直接通过JDBC连接数据库这种连接方式的基础上,指出了传统数据库连接技术中存在的运行效率低、软件移植性和...主要介绍数据库连接池的基本原理和工作机制,并给出了在Weblogic Server中数据库连接池的配置实例。

    高级数据库

    此ppt中包含了数据库连接池的基本概念、原理以及使用方法;存储过程的基本概念和语法以及使用方法,MySql和Sql Server数据库存储过程的区别;触发器的基本概念、语法、使用以及MySql与Sql Server数据库的区别;ORM...

    EDA/PLD中的基于JDBC的数据库连接池技术研究与应用

    近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用。  基于B/S(Browser/Server)架构的3层开发...Java应用程序访问数据库的基本原理  

Global site tag (gtag.js) - Google Analytics