当前位置:  开发笔记 > 运维 > 正文

用于在数据库之外实现事务的模式

如何解决《用于在数据库之外实现事务的模式》经验,为你挑选了1个好方法。

我必须发送电子邮件,写入文件,并呼叫Web服务.为了保持一致性,必须执行所有步骤.如果任何步骤抛出异常或错误,则必须回滚所有步骤.

在我开始编写自己的对象ACID引擎之前,是否有任何常用的模式在对象级别实现ACID语义?

更好的是,我可以使用任何现有的.NET平台库吗?

编辑:我知道发送电子邮件无法撤消,但无法连接到SMTP服务器导致终止整个事务.此外,我希望这可以扩展用于将来的操作.



1> Hector Sosa ..:

几年前我最后一次见到这样的东西.我记得的一点是,它使用命令模式并将每个命令对象存储在队列中.我认为这是一个LIFO堆栈.

因此,如果"事务"失败,引擎将弹出命令对象,撤消命令,然后销毁命令对象.重复直到堆栈为空.如果"交易"成功,则清算堆栈.

不幸的是,我不记得更多.

CSLA.NET实现了类似的撤销堆栈.这是代码的唯一例子,我可以从头脑中思考.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有