如何操作ADO.NET 2.0清除池工作

开发 后端
为强制执行ADO.NET 2.0的以数据为中心的基准,ADO.NET没有游标的显示实现,只要它们在本地分别提供Ole Db提供程序和ODBC提供程序。

虽然有许多人对ADO.NET 2.0的安全性表示怀疑,但在年复一年的不断发展中,他的安全性也在不断提高。保障ADO.NET 2.0的安全性是完全有可能的,但前提是要深入理解到底什么是ADO.NET 2.0,及他是怎么运作的。

(1)连接池的创建

在通过连接字符串创建SqlConnection对象时,创建了连接池。其连接字符串的格式如ADO.NET 2.0下:Data Source=127.0.0.1;Initial Catalog=pub;Persist Security Info=True;User ID=sa;password=sa;Pooling=True;Min Pool Size=10;Max Pool Size=200;timeout=60默认情况下,连接字符串中Pooling属性为True。如果使用连接池,在创建连接对象时,应该使用同一个连接字符串。ADO.net允许创建多个连接池,并且每个池都与不同的连接字符串关联,

打开新连接时,如果连接字符串并非与现有池完全匹配,将创建一个新池。ADO.NET 2.0如果 MinPoolSize 在连接字符串中未指定或指定为零,池中的连接将在一段时间不活动后关闭。但是,如果指定的 MinPoolSize 大于零,在 AppDomain 被卸载并且进程结束之前,连接池不会被破坏。非活动或空池的维护只需要最少的系统开销。

(2)添加连接

连接池是为每个唯一的连接字符串创建的。当创建一个池后,将创建多个连接ADO.NET 2.0对象并将其添加到该池中,以满足最小池大小的要求。连接根据需要添加到池中,但是不能超过指定的***池大小(默认值为 100)。连接在关闭或断开时释放回池中。连接池进程通过在连接释放回池中时重新分配连接,来满足这些连接请求。如果已达到***池大小且不存在可用的连接,则该请求将会排队。

然后,池进程尝试重新建立任何连接,直到到达超时时间(默认值为 15 秒)。ADO.NET 2.0如果池进程在连接超时之前无法满足请求,将引发异常。

(3)移除连接

如果连接长时间空闲,或池进程检测到与服务器的连接已断开,连接池进程会将该连接从池中移除。在使用完连接时一定要关闭连接,以便连接可以返回池。要关闭连接,可以使用 Connection 对象的 Close 或 Dispose 方法,也可以通过在 C# 的 using 语句中。#t#

(4)清除池

ADO.NET 2.0 引入了两种新的方法来清除池:ClearAllPools 和 ClearPool。ClearAllPools 清除指定提供程序的连接池,ClearPool 清除与特定连接关联的连接池。

(5)事务支持

连接是根据事务上下文来从池中取出并进行分配的。除非在连接字符串中指定了 Enlist=false,否则连接池将确保连接在 Current 上下文中登记。如果连接使用登记的 System.Transactions 事务关闭并返回到池中,连接将保留在池中,以便使用相同 System.Transactions 事务对该连接池的下一次请求将返回相同的连接(如果可用)。

如果发出这样的请求,而没有可用的池连接,则会从池的非事务性ADO.NET 2.0部分取出一个连接并登记。如果在池的每个区域都没有可用的连接,则会创建一个新的连接并登记。

责任编辑:chenqingxiang 来源: 博客园
相关推荐

2009-12-23 17:54:01

ADO.NET 2.0

2009-11-11 14:44:27

ADO.NET 2.0

2009-12-23 14:59:32

ADO.NET 2.0

2009-11-04 14:17:34

ADO.NET 2.0

2009-12-18 14:27:24

ADO.NET对象

2009-12-24 09:14:52

ADO.Net Tea

2009-12-21 17:35:24

ADO.NET对象

2009-12-22 14:15:08

ADO.Net处理数据

2010-01-05 10:11:23

ADO.NET连接池

2009-11-03 16:51:04

ADO.NET连接池观

2011-05-20 15:45:52

数据集

2009-11-13 13:11:37

ADO.NET连接池

2009-12-23 09:01:15

ADO.NET连接池

2009-12-28 15:46:22

ADO.NET操作

2009-12-23 11:10:38

ADO.NET状态

2009-11-12 15:47:14

ADO.NET更新数据

2009-11-13 17:20:35

ADO.NET数据集工

2009-12-29 14:01:45

ADO.NET Sql

2009-12-30 11:13:28

ADO.NET操作

2009-12-22 10:15:17

ADO.NET规则
点赞
收藏

51CTO技术栈公众号