教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> .NET类 >> ASP.NET >> .Net与Oracle的数据库连接池(Connection Pool) RSS订阅
.Net与Oracle的数据库连接池(Connection Pool)
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
.Net与Oracle的数据库连接池(Connection Pool)
概述:
数据库连接池允许应用程序重用已存在于池中的数据库连接,以避免反复的建立新的数据库连接。这种技术能有效提高应用程序的伸缩性,因为有限的数据库连接能够给大量的客户提供服务。这种技术同时也提高的系统性能,避免了大量建立新连接的开销。

开发一个具有伸缩性的、高性能应用程序应该最大限度的减少建立连接所花费的时间,保持数据库连接最大限度的有效,以存取数据。当一个数据库连接关闭时,它只是由连接池收回以待重用,并未真正释放。但是,如果连接池被释放,数据库连接将会被释放掉。

开发人员应当注意不要依赖垃圾回收机制去释放数据库连接,因为当参数超出作用域时,数据库连接并没有得必要的关闭,这种数据库资源泄漏将导致建立新连接时抛出连接错误。

建立数据库连接池
当打开一个数据库连接时,一个数据库连接池也就创建了。数据库连接池的创建与数据库连接字符串精确的相关(包括空格、大小写)。所有的连接池是根据连接字符串来区分的。在创建一个新的数据库连接时,如果连接字符串不完全相同,将创建不同的连接池。

一旦数据库连接池被创建,它将一直存在直到该进程结束。维护一个非活动状态的连接池几乎不需要什么系统开销。

连接池中的数据库连接
连接池根据唯一的连接字符串被创建。在连接池被创建的同时,连接池将创建最小的数据库连接,当连接不够用时,连接池将逐个添加数据库连接直到达到最大连接数,此后的连接请求将被加入请求队列里。当调用数据库连接对象的Close方法或Dispose方法时,数据库连接将被数据库连接池回收。

当数据库连接使用完成后,要调用Close方法或Dispose方法将它返回连接池。没有显式释放的数据库连接可能会没有返回连接池。

注意不要在类的Finalize方法中调用任何管理类如Connection,DataReader等的Finalize方法,必须将数据库连接的释放权交给连接池。

释放数据库连接
当数据库连接超时或服务已经完成时,连接池将会将其资源释放,这只能通过试图与数据库通讯来判断。如果发现数据库连接不可用,它将被标记为不可用资源。数据库连接池将定时扫描数据库连接,释放所有不可用资源。

如果发现现有的数据库连接不可用,那么可能是该连接被数据库连接池标记为不可用资源了,这时将抛出一个异常。尽管如此,你还是必须释放连接,将它返回连接池。

支持Transaction
数据库连接池内的数据库连接是按照Transaction Context划分的,每当连接池接到连接请求时,他将返回与请求者Transaction Context相匹配的数据库连接。因此,每个连接池都由数个Transaction Context相关的数据库连接和一个Transaction Context无关的数据库连接组成。当数据库连接被返回连接池时,它将被放回对应的Transaction Context组中。

用连接字符串关键字控制数据库连接池
OracleConnection对象的属性ConnectionString有一些能支持连接池控制的key-value字符串。下表是这些key-value字符串的详细说明。

名称
默认值
说明

Connection Lifetime
0
当数据库连接被返回到连接池中时,它的创建时间将与当前时间比较,如果超过了Connection Lifetime规定的时间,它将被释放掉。

为0时将被视为最大连接时间。

Enlist
'true'
当此值为true时,池中现存的所有数据库连接将被加入到它的创建线程的Transaction Context中。如果不存在这个Transaction Context则无任何变化。

Max Pool Size
100
连接池能建立的最大数据库连接数。

Min Pool Size
0
连接池要保持的最小数据库连接数。

Pooling
'true'
当设为true时,数据库连接将由相应的连接池管理。



来源:upschool.com.cn
作者:
关键字:.Net,Oracle,数据库连接池,Pool
发表日期:2005-12-23

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:使用正则表达式进行数据有效性校验的TextBox控件   下一篇:三个通用代码


本文的相类似文章
  • .NET框架下Oracle到SQL Server迁移
  • 黑客揭密ASP.net服务器的入侵
  • ASP.Net漏洞 黑客可绕过安全设置
  • ASP.NET中如何防范SQL注入式攻击
  • ASP.NET中树形图的实现 3
  • ASP.NET 2.0中随机读取Access数据库记录
  • ASP.NET中树形图的实现 1
  • ASP.NET中树形图的实现 2
  • .NET里的MTS
  • 使用Reflection获取.NET组件的信息
  • 网友评论 查看本文全部评论
    笔 名: *
    评 论:
    最多500字。当前字数:0
    联系方式:
    验证码:
    在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com