C++/C | Java | .Net/Windows | Linux/Unix | 开源 | 其他
首页 - 编程
编程
全文搜索:   

如何利用ADO.NET的连接缓冲池
作者: Tony Patton
2006-09-11 16:49:32



如果你使用.NET Data Provider而非SQL Server,就应该参考文件资料。其他的Data Provider可能拥有更多的缓冲池选项。Oracle Data Provider是一个典型的例子,它提供两个控制连接池缩小或增大的选项——Decr Pool Size和Incr Pool Size。

微软文件规定,连接缓冲池通过对释放出缓冲池的连接进行再分配,从而满足连接需求。如果缓冲池已达到最大,且没有可用的连接,则请求排队等候。在超时时间(默认为15秒)到达前,缓冲池会设法回收利用连接。如果在连接超时前,缓冲池无法满足需求,就会产生异常。

缓冲池使用建议

使用连接缓冲池时应保持谨慎。以下是使用时的几点提示:

  • 只有在需要时才打开连接。也就是说,及时打开连接。所以,要在需要时打开连接,不早也不晚。还有,操作完成后立即关闭连接,不要等到垃圾收集器来关闭连接。
  • 在关闭相关连接前,关闭用户定义的事务。
  • 要维持连接缓冲池,必须保持至少开放一个连接。因此,不要关闭缓冲池中的所有连接。如果服务器资源出现问题,你可以关闭所有连接;那么,下一个请求将重建缓冲池。
  • 在采用集成安全机制时,不要使用连接缓冲池。这样做会为每个用户建立一个独特的连接字符串,于是每个用户拥有一个连接缓冲池,但其他用户却不能使用。最终使性能降低,所以在这种情况下要避免使用缓冲池。

ADO.NET 2.0

ADO.NET 2.0推出了两个与连接缓冲池有关的新方法——ClearAllPools和ClearPool。ClearAllPools为一个指定的提供者清除连接缓冲池;ClearPool则清除与特定连接有关的连接缓冲池。如果在调用上述两个方法时,有连接在使用之中,则对它们打上适当的标记。当连接关闭后,就将它们抛弃,而不是返回到缓冲池中。

其它应用选项

整理数据库资源专栏后,是一个简述连接缓冲池的专栏,这似乎有些奇怪。问题的关键在于了解可用的连接,并根据应用程序需求对它们加以应用。如果应用程序与数据库保持即时通信,那么连接缓冲池就成为最佳选择,因为此时不需要打开/建立连接,性能也因此得到提高。另一方面,夜晚运行的应用程序不必维持缓冲池,因为它在白天时不需要数据库。在决定是否应用连接缓冲池时,做出明智的判断。

 Tony Patton拥有丰富的Java、VB、Lotus及XML方面的知识,是一个专业的应用程序开发人员。

责任编辑:张琎

查看本文的国际来源

【上一页】
声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
Copyright (c) CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159