COM+ CRM 启动和恢复

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

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

注意

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

 

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

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

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

不会自动启动用于恢复的 CRM 服务器应用程序。 在需要恢复时,必须采取一些外部措施来启动 CRM 服务器应用程序。 通常的做法是在服务器应用程序中创建一个组件。

COM+ 补偿资源管理器概念

COM+ CRM 操作过程