服务器 频道

连接池与SQLServer2000 Analysis Services

  平衡和收缩连接池
  连接池中包含的连接数目没有严格的限制,因为已将基础管理机制设计为无阻碍机制,即客户端应用程序在请求连接时应该都能获得连接。正是由于无阻碍的特点,两个对象才能使用相同的被动技术来管理连接。
  不过,也可以使用两种不同的技术来管理连接池:“平衡”和“收缩”。
  
  平衡连接池
  每当将连接返回到连接池(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
  对 ADOConPool 对象的有效引用。
  
  备注
  客户端应用程序应该定期调用此方法,以终止并删除已经超时的可用连接。有关收缩连接池的详细信息,请参阅平衡和收缩连接池。
  OLEDBConPool 对象
  OLEDBConPool 对象为使用 OLE DB 数据访问技术的客户端应用程序提供连接池,从而维护 OLE DB 会话对象的集合。OLEDBConPool 对象适用于那些直接使用 OLE DB 对客户端数据进行访问的应用程序,而大多数启用 Web 的应用程序应该使用 ADOConPool 连接池对象。
0
相关文章