科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道连接池与SQL Server 2000 Analysis Services

连接池与SQL Server 2000 Analysis Services

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

资源管理是开发可伸缩客户端和基于 Web 的应用程序时需要考虑的一个重要问题......

作者:佚名 来源:Microsoft 2007年10月23日

关键字: SQL Server

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

平衡和收缩连接池

  连接池中包含的连接数目没有严格的限制,因为已将基础管理机制设计为无阻碍机制,即客户端应用程序在请求连接时应该都能获得连接。正是由于无阻碍的特点,两个对象才能使用相同的被动技术来管理连接。

  不过,也可以使用两种不同的技术来管理连接池:“平衡”和“收缩”。

  平衡连接池

  每当将连接返回到连接池(ADOConPool 对象使用 ReturnConnection 方法,而 OLEDBConPool 对象使用 ReturnSession 方法)时,都会用到平衡技术。连接池对象将把活动连接(已用连接和可用连接)的总数与 MaxSessions 属性值进行比较,以确定是否有必要平衡连接池。如果活动连接的总数大于 MaxSessions 属性值,则需要进行平衡。

  为了平衡连接池,连接池对象将根据自上次访问每个可用连接以来经过的秒数对可用连接组进行排序。然后,该对象逐一删除那些经过时间最长的可用连接,直到已用连接和可用连接的总数小于 MaxSessions 属性值或者没有任何活动的可用连接为止。

  注意:平衡时不使用 Timeout 属性。

  收缩连接池

  每当客户端应用程序调用 ADOConPool 或 OLEDBConPool 对象的 Shrink 方法时,都会用到收缩技术。此技术是针对过期的可用连接而言的。连接池对象将把每个可用连接的上次访问时间与当前系统时间进行比较,如果相差的秒数大于 Timeout 属性值,就会删除该可用连接。

  但是,这两种技术都不适用于管理已用连接。在完成一项操作之后,客户端应用程序负责将连接返回到连接池,这样就可以把已用连接作为可用连接进行重新分配。连接池对象并不试图管理已用连接,而是仅对可用连接进行平衡和收缩。使用此方法可以在性能和资源管理之间灵活地进行平衡。

  ADOConPool 对象
  ADOConPool 对象为使用 ADO 数据访问技术的客户端应用程序提供连接池,从而维护 ADO 连接对象的集合。

  ADOConPool 对象具有以下属性和方法:

  MaxSessions 属性
  MaxSessions 属性用于限制连接池中 ADO 连接对象(包括可用连接和已用连接)的数目。

  数据类型
  长整型

  权限
  读/写

  备注
  由于连接池机制被设计为无阻碍机制,因而并不使用 MaxSessions 属性直接限制连接池的增长。而是由 ReturnConnection 和 Shrink 方法使用此值来平衡和收缩连接池。有关平衡和收缩的详细信息,请参阅本文前面介绍的平衡和收缩连接池。

  Sessions 属性
  Sessions 属性返回连接池中活动 ADO 连接对象的数目。

  数据类型
  长整型

  权限
  只读

  备注
  Sessions 属性报告由 ADOConPool 对象管理的连接(包括已用连接和可用连接)的总数。

  Timeout 属性
  Timeout 属性设置或返回可用 ADO Connection 对象保持活动状态的秒数。

  数据类型
  长整型

  权限
  读/写

  备注
  与 MaxSessions 属性类似,Timeout 属性由 Shrink 方法用来识别要从连接池中删除的活动可用连接。有关收缩的详细信息,请参阅平衡和收缩连接池。

  GetConnection 方法
  如果给定连接字符串,GetConnection 方法将返回 ADO Connection 对象。

  语法

C++

HRESULT GetConnection([in] BSTR in_bstrCn, [out,retval] IDispatch** io_ppADOConnection)

Visual Basic
Set io_ppADOConnection = object.GetConnection(in_bstrCn As String)

object

  对 ADOConPool 对象的有效引用。
  in_bstrCn

  适用于 ADO Connection 对象的连接字符串。
  io_ppADOConnection

  返回的 ADO Connection 对象引用。

  备注
  此方法试图在创建新连接之前通过匹配连接和安全性信息,从连接池中请求现有的可用连接。有关请求连接的详细信息,请参阅请求和返回连接。

  ReturnConnection 方法
  ReturnConnection 方法将 ADO Connection 对象返回到连接池。

  语法

C++

HRESULT ReturnConnection([in,out] IDispatch** io_ppADOConnection)

Visual Basic
object.ReturnConnection io_ppADOConnection

object

  对 ADOConPool 对象的有效引用。
  io_ppADOConnection

  要返回到连接池的 ADO Connection 对象。

  备注
  使用此方法返回连接之后,连接池对象会自动平衡可用连接。有关平衡连接的详细信息,请参阅平衡和收缩连接池。

  Shrink 方法
  当 Shrink 方法被调用时,它将终止过期的可用 ADO 连接对象并从连接池中将其删除。

  语法
  C++

  HRESULT Shrink()

  Visual Basic

  object.Shrink

  object

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章