COM+ CRM 启动和恢复

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

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

注意

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

 

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

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

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

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

COM+ 补偿资源管理器概念

COM+ CRM 操作过程