移植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后发生了什么。
……