我们有一些COM+ Application
由几个DLL
组成,每个COM+ Application Catalog
包含多个服务组件(用C#编写),运行在Windows Server 2003 / 2008R2操作系统上。
在某些情况下(我们尽可能避免),我们有义务应用补丁来纠正错误。为了实现这一点,我们目前所做的是(当然假设我们拥有目标服务器上所需的所有东西):
上面提到的步骤没有问题,我们通过命令行构建了一个用于以编程方式管理COM+ Application
的小应用程序,这样我们就可以更新一些DLL并使服务组件生活在大约。 2秒...对我们来说并不算太多,我们可以负担这个(离线)时间,但我希望通过编写修补工具来完善整个过程并自动完成。
我想弄清楚的是:
Serviced Components
的所有服务组件都已完成工作(所有请求/调用都已完成),以便我可以安全地进入第2点?COM+ Application
的{{1}}的状态? 注意 :如果您习惯使用 dcomcnfg ,我需要访问的数据与您看到的数据相同您展开COM+ Application
下的Console Root\Computers\My Computer\<MyComPlusApp>
文件夹,然后展开文件夹Components
并转到菜单View
并选择Status
菜单项。 Windows当然能够知道每个COM+ Serviced Component
在屏幕上显示它的状态,因此这正是我需要访问的数据。
答案 0 :(得分:3)
我怎么知道我的COM +的所有服务组件 应用程序已完成工作(所有请求/调用已完成 完成)以便我可以安全地进入第2点?
您可以使用COM+ Instrumentation Interfaces或COM+ Tracking来接收有关您的组件的信息。
更多细节,是否有任何我可以使用的库来获取 某个COM +应用程序的服务组件的状态?
IGetAppTrackerData interface可让您获得所需的信息。
一些注意事项:不要忘记在关闭应用程序时需要小心,因为组件无法处于通话状态,但在关机之前会有其他来电服务。此外,根据我使用COM + API的经验可能会变得混乱,有时缺乏文档(特别是在示例方面)。
看起来保存2秒可能有点工作。 :)