適用於:Microsoft SQL Server? 2000 Analysis Services
摘要:學習如何使用 Microsoft XML for Analysis Provider 附帶的連接池對象來開發適用於 Microsoft SQL Server 2000 Analysis Services 的可伸縮客戶端和 Web 應用程序。
簡介 資源管理是開發可伸縮客戶端和基於 Web 的應用程序時需要考慮的一個重要問題。在構造可為許多並發用戶提供服務的客戶端應用程序時,資源管理的指導原則是盡可能遲地分配資源,並盡可能早地解除資源分配。資源(例如內存、進程線程以及網絡或數據庫連接)的可用性與客戶端應用程序的性能和用戶的滿意程度直接相關。因此,隨著客戶端應用程序的不斷擴展,資源管理也變得越來越重要了。
通過對資源管理進行進一步的控制,連接池可以降低可伸縮性的影響。連接池使客戶端應用程序能夠在連接池與給定資源之間建立連接,而不需要在每次使用時都重新建立連接。在連接池中建立連接之後,客戶端應用程序可以重復使用該連接,而不必執行完整的連接過程。
因為客戶端應用程序不需要重復地建立和關閉連接,使用池緩沖的連接會顯著提高連接性能。此過程所需的時間對使用滯後時間較長的資源(例如 Internet 或網絡連接)的客戶端應用程序來說尤其重要。當客戶端應用程序不再需要連接時,該連接就返回到連接池。
除了可以提高性能以外,使用連接池還可以更有效地管理資源,同時又不會給客戶端應用程序增加額外的資源管理費用。連接池管理器可以根據需要分配和解除分配連接以維護連接池,並且連接池中的連接可以供多個應用程序重復使用。
為了支持使用 Microsoft SQL Server 2000 Analysis Services 的 Web 客戶端應用程序的可伸縮性需要,Microsoft XML for Analysis Provider 中已經實現了連接池功能。XML for Analysis Provider 會自動使用連接池,另外也可以對其他不需要使用由提供程序本身提供的 XML 連接的客戶端應用程序使用此功能。本文旨在介紹一些對象,通過它們可以充分利用 Analysis Services 客戶端應用程序中的連接池。
讀者
本文假定讀者具備 SQL Server 2000 Analysis Services 以及 Microsoft ActiveX? 數據對象 (ADO) 和 OLE DB 數據訪問技術的基礎知識。有關示例可在 Microsoft Visual Basic? 和 Microsoft Visual C++? 中找到。
連接池對象 XML for Analysis Provider 中提供了兩個對象:ADOConPool 和 OLEDBConPool。ADOConPool 對象用於管理 ADO 連接對象;OLEDBConPool 對象用於管理 OLE DB 會話對象。雖然兩種對象提供的連接池類型不同,但是它們均使用了相同的基礎機制來管理連接池。在本文中討論這種共享的機制時,用術語“連接”來描述 ADO 連接對象和 OLE DB 會話對象。
連接池機制僅適用於 Microsoft SQL Server 2000 Service Pack 1 (SP1) 中包含的、已經過更新的 Microsoft OLE DB Provider for OLAP Services 8.0 (MSOLAP.2) OLE DB 提供程序。
使用連接池對象
在支持 ADO 或 OLE DB 數據訪問技術的編程語言中,可以使用 ADOConPool 和 OLEDBConPool 對象。但是,要在 Visual C++ 程序中使用這些對象,必須在程序中添加以下編譯器指令以包含正確的頭文件和屬性:
#include
#include
#import "\msxaserv.dll" rename("tag_inner_PROPVARIANT",
"tagPROPVARIANT") rename("_LARGE_INTEGER","")
rename("_ULARGE_INTEGER","")
using namespace MSXMLAnalysisSCLib;
求和返回連接
從連接池請求連接所用的機制不同於 OLE DB 資源池對基於 Web 的應用程序進行快速訪問所用的機制。連接池對象將活動連接池分成兩組:“可用連接”和“已用連接”。可用連接由當前未分配給客戶端應用程序的連接組成;已用連接是指當前已分配給客戶端應用程序並被它使用的那些連接。
連接請求需要采用特殊的身份驗證和模擬機制。當通過應用程序請求連接時(ADOConPool 對象使用 GetConnection 方法,而 OLEDBConPool 對象使用 GetSession 方法),連接池試圖檢索可用連接,