当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

基于JDBC的数据库衔接池技术研究与筹划[Java编程]

赞助商链接



  本文“基于JDBC的数据库衔接池技术研究与筹划[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

摘 要 本文介绍了基于JDBC的数据库衔接池的工作原理,阐述了衔接池技术 的事件处理、大都据库服务器等各项关键技术,提出了一个高效的衔接池管理策 略,最后具体阐明了数据库衔接池利用的具体实现历程.

关键词 JDBC; 数据库; 衔接池; 事件处理

随着信息技术的高速发展与遍及利用,数据库技术在信息技术范畴中的位置 越来越重要,特别是网络利用和电子商务的疾速发展,都需求数据库技术支持动 态Web站点的运行,而传统的开辟情势是:首先在主程序(如Servlet、Beans) 中成立数据库衔接;然后举行SQL操作,对数据库中的对象举行查询、改正和删 除等操作;最后断开数据库衔接.利用这种开辟情势,关于一个简单的数据库应 用,由于数据库的拜候不是很频繁,只需求在拜候数据库时成立一个衔接,用完 后就关闭它,这样做不会明显的增大系统的开销.但是关于一个复杂的数据库应 用,情形就完好差别:频繁的成立、关闭数据库,会极大的降低系统的性能,增 大系统的开销,乃至成为系统的瓶颈.别的利用这种传统的情势,还必须管理数 据库的每一个衔接,以确保他们能精确关闭,假如呈现程序非常而招致某些衔接 未能关闭,将惹起数据库系统中的内存泄露,终究不得不重启数据库.因此采取 运行速度更快、数据库拜候效率更高的数据库技术,以提高系统的运行效率将是 至关重要的.

为了办理这一问题,在JDBC2.0中提出了JDBC衔接池技术,通过在客户之间共 享一组衔接,而不是在它们需求的时刻再为它们生成,这样便可以改进资源利用 ,提高利用程序的呼应本领.

JDBC 概述

JDBC(Java Database Connectivity,Java数据库衔接)是一种用于履行SQL 语句的JavaAPI,可认为多种关系型数据库(如Oracle、Sybase、SQL Server、 Access等)供应统一拜候接口,它由一组Java语言编写的类和接口构成,使数据 库开辟人员可以用尺度JavaAPI编写数据库利用程序.

衔接池技术

1、衔接池原理

衔接池技术的核心机惟是:衔接复用,通过成立一个数据库衔接池以及一套 衔接利用、分配、管理战略,使得该衔接池中的衔接可以得到高效、安全的复用 ,避免了数据库衔接频繁成立、关闭的开销.别的,由于对JDBC中的原始衔接进 行了封装,从而便利了数据库利用关于衔接的利用(分外是关于事件处理),提 高了开辟效率,也恰是因为这个封装层的存在,断绝了利用的本身的处理逻辑和 具体数据库拜候逻辑,使利用本身的复用成为大概.衔接池主要由三部份构成( 如图1所示):衔接池的成立、衔接池中衔接的利用管理、衔接池的关闭.下面 就侧重谈论这三部份及衔接池的配置问题.

图1 衔接池情势

1.1 衔接池的成立

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

1.2 衔接池的管理

衔接池管理战略是衔接池机制的核心.当衔接池成立后,若何对衔接池中的 衔接举行管理,办理好衔接池内衔接的分配和释放,对系统的性能有很大的影响 .衔接的公道分配、释放可提高衔接的复用,降低了系统成立新衔接的开销,同 时也加快了用户的拜候速度.下面介绍衔接池中衔接的分配、释放战略.

衔接池的分配、释放战略关于有效复用衔接非常重要,我们采取的办法是一 个很闻名的计划情势:Reference Counting(引用记数).该情势在复用资源方 面利用的非常遍及,把该办法应用到关于衔接的分配释放上,为每一个数据库连 接,保存一个引用记数,用来记录该衔接的利用者的个数.具体的实现办法是:

当客户恳求数据库衔接时,首先查看衔接池中能否有闲暇衔接(指当前没有 分配出去的衔接).假如存在闲暇衔接,则把衔接分配给客户并作呼应处理(即 标志该衔接为正在利用,引用计数加1).假如没有闲暇衔接,则查看当前所开 的衔接数是不是已经到达maxConn(最大衔接数),假如没到达就重新成立一个 衔接给恳求的客户;假如到达就按设定的maxWaitTime(最大等候时间)举行等 待,假如等候maxWaitTime后仍没有闲暇衔接,就抛出无闲暇衔接的非常给用户 .

当客户释放数据库衔接时,先判断该衔接的引用次数能否超越了规定值,如 果超越就删除该衔接,并判断当前衔接池内总的衔接数能否小于minConn(最小 衔接数),若小于就将衔接池充满;假如没超越就将该衔接标志为开放状况,可 供再次复用.可以看出恰是这套战略保证了数据库衔接的有效复用,避免频繁地 成立、释放衔接所带来的系统资源开销.

1.3 衔接池的关闭

当利用程序退出时,应关闭衔接池,此时应把在衔接池成立时向数据库申请 的衔接对象统一偿还给数据库(即关闭全部数据库衔接),这与衔接池的成立正 好是一个相反历程.

1.4 衔接池的配置

数据库衔接池中到底要安排多少个衔接,才能使系统的性能更佳,用minConn 和maxConn来限制.minConn是当利用启动的时刻衔接池所成立的衔接数,假如过 大启动将变慢,但是启动后呼应更快;假如太小启动加快,但是最初利用的用户 将因为衔接池中没有充足的衔接不可避免的延缓了履行速度.因此应当在开辟的 历程中设定较小minConn,而在实际利用的中设定较大minConn.maxConn是衔接 池中的最大衔接数,可以通太反复试验来肯定此饱和点.为此在衔接池类 ConnectionPool中加入两个办法getActiveSize()和getOpenSize(), ActiveSize 表示某一时间有多少衔接正被利用,OpenSize表示衔接池中有多少 衔接被翻开,反映了衔接池利用的峰值.将这两个值在日记信息中反映出来, minConn的值应当小于平均ActiveSize,而maxConn的值应当在activeSize和 OpenSize之间.


  以上是“基于JDBC的数据库衔接池技术研究与筹划[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 基于JDT的JAR源代码搜索
  • 基于JDBC的数据库衔接池技术研究与筹划
  • 基于JDBC的数据库衔接池高效管理战略
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .