本节介绍用于 OLE DB、ODBC 和 Oracle 的 .NET Framework 数据提供程序的连接池。
您也可以提供几个连接字符串修饰符,用于控制连接池的行为(请参见本主题后文的“使用连接字符串关键字控制连接池”)。
池的创建和分配
打开新连接时,如果连接字符串并非与现有池完全匹配,将创建一个新池。
维护不活动的池或空池占用的系统资源非常少。
连接的添加
连接将根据需要添加到池中,直至达到最大池大小。
要成为可用连接,该连接当前必须未被使用,具有匹配的事务上下文或者不与任何事务上下文相关联,并且具有与服务器的有效链接。
连接在关闭或断开时释放回池中。
连接的移除
找到后,这些连接将被永久移除。
但是,为了将该连接释放回池中,仍必须将其关闭。
垃圾回收。
事务支持
N 个各自包含与一个特定事务上下文的连接的子部分。
这样,您就可以在随后提交或中止分布式事务。
使用连接字符串关键字控制连接池
ConnectionString 属性支持连接字符串键/值对,可以用于调整连接池逻辑的行为。
ConnectionString 值。
|
名称 |
默认值 |
说明 |
|---|---|---|
|
Connection Lifetime |
0 |
在聚集配置中可以使用它来强制在运行服务器和刚联机的服务器之间达到负载平衡。 如果值为零 (0),则将使池连接具有最大的超时期限。 |
|
Enlist |
'true' |
true 时,如果存在事务上下文,池管理程序将自动在创建线程的当前事务上下文中登记连接。 |
|
Max Pool Size |
100 |
池中允许的最大连接数。 |
|
Min Pool Size |
0 |
池中维护的最小连接数。 |
|
Pooling |
'true' |
true 时,将从相应的池中取出连接,或者在必要时创建连接并将其添加到相应的池中。 |