COM+ CRM 启动和恢复

如果服务器应用程序选中 “启用补偿资源管理器”复选框(使用组件服务管理工具,在 COM+ 应用程序属性页的“高级”选项卡上),第一次启动时,它会创建 CRM 日志文件,供该服务器应用程序进程中的所有 CMS 使用。 (有关配置 CRM 的详细说明,请参阅 配置 COM+ CRM 组件。)

为服务器应用程序创建的 CRM 日志文件的名称基于服务器应用程序的 AppId(GUID),CRM 日志文件与 DTC 日志文件(通常为 %SystemRoot%\winnt\system32\DtcLog 目录)位于同一目录中。 CRM 日志文件具有扩展名 .crmlog。

注意

由于性能原因(将 DTC 日志文件放在不同于 CRM 日志文件的磁盘上),或者可能是由于群集环境中使用 CRM,可能需要更改 CRM 日志文件的默认位置。 可以使用 COM+ 管理 SDK 更改 CRM 日志文件的位置。 属性名称为 CRMLogFile,它存在于 Applications 集合对象上。

 

当服务器应用程序(已启用 CRM)启动时,发现该服务器应用程序已存在 CRM 日志文件,它会在该 CRM 日志文件上执行恢复。 恢复 是完成因故障中断的任何事务的过程,涉及 CRM 基础结构读取未完全完成的任何事务的 CRM 日志文件。 如果找到任何结果,它将联系 DTC 以确定事务结果。 然后,它会创建 CRM 补偿程序,并根据需要传递提交或中止通知,以及关联的日志记录。

恢复期间 CRM 补偿程序不会收到准备通知。 CRM 补偿程序具有一个标志,用于区分是在正常作期间还是在恢复期间调用它。

只有在服务器应用程序因服务器应用程序进程崩溃或计算机崩溃而关闭异常时,恢复才会发现未完成的事务。 如果允许服务器应用程序正常关闭,则由于空闲超时或通过组件服务管理工具手动关闭,日志文件将干净。

不会自动启动用于恢复的 CRM 服务器应用程序。 必须执行一些外部作才能启动需要恢复的 CRM 服务器应用程序。 通常,这会在该服务器应用程序中创建组件。

COM+ 补偿资源管理器概念

COM+ CRM作过程