我在交易范围方面没有太多工作,我想确保在我跳得太深之前我正确地接近这个想法。
设置/目标
- 我有一个项目列表,这些项目是要复制到远程系统的文件。
- 对于该列表中的每个文件,我需要创建一个事务:
- 将文件复制到远程系统
- 调用Web服务,将对该新文件的引用添加到数据库中。
- 如果Web服务调用或文件复制失败,我需要回滚两个操作。
- 回滚文件副本将意味着删除远程系统上的文件。
- 回滚Web服务操作意味着调用另一种Web服务方法来删除我刚刚创建的条目。
- 如果项目列表中的任何项目失败,我想返回某种消息,但不会阻止其他项目被提交。
我正在考虑做什么
在我(非常有限)的主题阅读中,我认为这可能是正确的方法:
- 为允许其参与持久交易的文件副本创建资源管理器
- 为同一行的Web服务调用创建资源管理器
- 为列表中的每个项目创建一个foreach循环
- 对于每个项目,创建一个使用两个资源管理器的事务范围,并在出现问题时回滚/报告。
问题
- 我在这里没有看到任何东西或者我应该实施的新方法,或者这实际上是要走的路?
迄今为止的资源
当我检查问题并试图绕过它时,这些是我正在阅读的一些页面:
预先感谢您提供任何帮助!