移植MTS包到COM+
如果被遷移的ASP應用使用到了ASP組件和事務,可能用到了MTS包組合組件。Windows 2000中將MTS集成到COM+中,而由Component Services(組件服務)處理組件包,MTS包也被COM+所替代。好在你可以使用Windows 2000提供的兩種技術的一種很容易的將MTS包遷移到COM+應用,至于使用那種技術,視乎你是升級操作系統還是安裝了新的操作系統。
如果操作系統使由NT升級到2000的,MTS包會通過安裝工具MTSTOCOM自動升級到COM+應用。轉換過程中的任何錯誤都會在安裝過程中記錄下來,可以察看位于Windows路徑下的Mtstocom.log文件獲得相關的信息。
如果是安裝新的操作系統,可將MTS包導出為MTS包文件(MTS Package File ,擴展名為 .pak 類型)以便遷移到新操作系統上。要為MTS包創建新的COM+應用,可依循下面的步驟:
打開Administrative Tools中的Component Services。 展開目錄樹,選中COM+ Applications,點擊右鍵。 在彈出的菜單中選擇New Application,運行COM Application Install Wizard。 選擇“Install pre-build application(s)”選項。 選擇相應的MTS包文件。
重復2-5的步驟移植其他的組件。 在導入的期間,會創建新的COM+應用程序,所有MTS包的組件和角色(Roles)都會自動的添加到組件中。另外,如果用戶導出到MTS包文件,而且允許它們導入,Component Services會自動的創建角色關聯的用戶(和它的權限)。
遷移到COM Services環境下的MTS組件和它們在NT下的表現是一樣的。如果組件原來支持事務處理,那么它現在仍舊支持事務處理。如果它原來在NT中負擔一部分JIT(Just-In-Time)工作,在2000中仍舊作同樣的工作。但是,遷移過來的組件并不會因為遷移而自動的獲得COM+的新特性,如對象緩沖(Object Pooling)和隊列(Queuing)。原因我們在后面的章節討論。
Windows 2000中ASP組件的變化
如果在ASP應用中有一個區域會因為基于不同的操作系統而受到影響,那就是ASP組件。基本上ASP組件也是MTS組件,而MTS已經被集成到COM+這個新環境中。此外,COM+如何管理組件發生了很重要的變化,如對象緩沖(Object Pooling)隊列(Queuing)和其他一些新選項。考慮到這些,你可能相當驚訝可以很容易的將組件遷移到Windows 2000中。為了解釋這些,我們將演示一下用Visual Basic 6.0和Visual C++ 6.0創建遷移組件。首先,我們要在Windows 2000中建立測試的環境。
第一步要在開發的計算機上安裝Visual Studio 6.0和Visual Studio Service Pack 3(本文發表后才發布Visual Studio Service Pack 4.0)。在安裝完畢后,打開Visual C++,然后關閉程序。
至于為什么這樣做,稍后解釋。
如果要使用Visual Studio開發ASP組件,尤其使用Visual C++,你需要安裝2000年1月號(或以后)的Platform SDK。通過以下網址可以訪問MSDN Online SDK中的Platform SDK。(http://msdn.microsoft.com/downloads/sdks/platform/default.asp);如果你訂閱了宇宙版或專業版的MSDN,可以從相關的CD上安裝。
在安裝Platform SDK的時候,可以自行選定合適的組件進行安裝。但是至少要安裝Configuration Options,它包括Integrate with Visual C++;以及Build Environment。如果硬盤空間不是負擔的話,強烈建議安裝文檔。安裝Build Environment會安裝COM+所需的庫和頭文件,集成的選項實質上是通過將Platform SDK的庫和頭文件加入作為包含和源文件的路徑的第一個實體將它們和Visual C++集成的。
有趣的是如果選擇了Integrate with Microsoft Visual C++的選項,Visual C++必須在這之前先打開一次才能保證這個過程進行的正確。如果沒有先打開Visual C++一次的話,路徑會添加到其它的Visual Studio安裝時添加的路徑的后面,而不是出現在列表的第一位,你需要手動的進行調整將它們移動到包含和庫文件路徑的第一位。稍后,你就會明白為什么要將Platform SDK庫和包含文件放到第一位。
在Platform SDK安裝完成后,就可以開始工作了。首先我們來看看基于Visual Basic的組件遷移到Windows 2000后發生了什么。
|