假设您有一个连接3个不同外部系统的应用程序。您需要全部更新3.如果发生故障,您需要回滚操作。 这不是一件很难实现的事情,但是说操作3失败了,当回滚时,操作1的回滚失败!现在第一个外部系统处于无效状态...几个无交易外部系统的原子操作
我在想一个可能的解决方案是关闭应用程序并强制外部系统的手动修复,但后来又一次...它可能已经有了使用这些信息(也许这就是为什么它失败了),或者我们可能没有足够的访问权限。或者它可能不是一个回滚行动的好方法!
是否有一些好的方法来处理这种情况?
编辑:一些应用程序的细节..
这是一个多用户的Web应用程序。大部分工作是通过预定的工作完成的(通过Quartz.Net),所以大多数操作都在它自己的线程中运行。某些用户操作应触发更新多个系统的作业。外部系统有些不稳定。
我想改变使用命令和机组工作模式
外部系统是否固定?或者你可以修改它们吗? – bmargulies 2010-06-14 04:38:39