COM + CRM 启动和恢复

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

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

备注

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

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

CRM 补偿器在恢复期间不会收到准备通知。 CRM 补偿器具有标志来区分是否在正常操作过程中或在恢复期间调用它。

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

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

COM + 补偿资源管理器概念

COM + CRM 操作过程