开发 COM+ CRM 的设计建议

下面是开发 COM+ CRM 的建议步骤:

  1. 在开始开发之前,使用组件服务管理工具) 将事务超时设置为零 (。 设置 VTRACE1 注册表标志 (查看 COM+ CRM 注册表设置) ,以查看调试跟踪上的 CRM 警告和错误消息。
  2. 确定需要使用哪种接口集、结构化 (变体) 或非结构化接口。 (请参阅 COM+ CRM Interfaces.) 这取决于用于开发 CRM 的语言,例如Microsoft Visual C++或 Microsoft Visual Basic。
  3. 首先开发 CRM 辅助角色。 确定日志记录中所需的信息。 定义所需的日志记录类型及其格式。
  4. 调试 CRM 补偿器作为 Windows SDK) 中 (的 CRM 示例的一部分提供。 调试 CRM 辅助角色代替真正的 CRM 补偿器时,可以暂时使用此函数。
  5. 当 CRM 辅助角色正常工作时,请开发真正的 CRM 补偿器,并将调试 CRM 补偿器替换为真正的 CRM 补偿器。
  6. 最初可能不需要测试恢复案例。 如果是这样,在启动 CRM 服务器应用程序之前,每次删除 CRM 服务器应用程序的 CRM 日志文件。

注意事项

  1. 提前写下。 CRM 辅助角色组件必须提前写入;也就是说,它必须写入一条日志记录,指示它将在实际执行该操作之前执行某个操作。 此外,必须在写入后以及执行操作之前强制将此日志记录强制到磁盘。
  2. 隔离。 CRM 不强制隔离。 CRM 设计必须在单独的事务上在多个客户端之间提供隔离,并且还必须在恢复之前考虑这种情况。
  3. 正在进行恢复。 CRM 辅助角色必须处理“正在进行的恢复”错误代码。 有关此错误代码的详细信息 ,请参阅 COM+ CRM 疑难解答
  4. 错误处理。 CRM 辅助角色必须应对事务早于预期中止的情况。 请参阅 COM+ CRM 中的错误处理部分。
  5. 恢复时间。 CRM 补偿器应设计为快速执行恢复,以便该 CRM 服务器应用程序的新工作不必等待。
  6. 幂等性。 CRM 补偿程序可能再次收到相同的日志记录,撤消或重做已撤消或重做的操作。 CRM 补偿程序可能执行的操作必须是幂等的,这通常意味着应忽略从这些操作返回的错误代码。
  7. 启动恢复。 当 CRM 服务器应用程序启动时,将执行 CRM 服务器应用程序的恢复。 但是,没有 CRM 服务器应用程序的自动启动。 应用程序开发人员应考虑如何启动和恢复。

COM+ 补偿资源管理器概念