开发 COM+ CRM 的设计建议

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

  1. 在开始开发之前,请将事务超时设置为零(使用组件服务管理工具)。 设置 VTRACE1 注册表标志(请参阅 COM+ CRM 注册表设置),以查看调试跟踪上的 CRM 警告和错误消息。
  2. 确定需要使用的接口集,即结构化(变体)或非结构化。 (请参阅 COM+ CRM 接口。)这取决于用于开发 CRM 的语言,例如 Microsoft Visual C++ 或 Microsoft Visual Basic。
  3. 首先开发 CRM 工作器。 确定日志记录中所需的信息。 定义所需的日志记录类型及其格式。
  4. 调试 CRM 补偿程序将作为 CRM 示例的一部分提供(在 Windows SDK 中)。 在调试 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+ 补偿资源管理器概念