. net中的应用程序崩溃和事务
本文关键字:事务 崩溃 应用程序 net | 更新日期: 2023-09-27 18:07:02
假设我有一个处理转账的应用程序。
try {
transaction.Commit();
} catch {
transaction.Rollback();
}
现在,如果必须取消提交,并且由于某种原因,程序在取消或回滚处理之前崩溃了,会发生什么?我如何编写我的应用程序,使它能够健壮地应对程序崩溃?
编辑:如果我没有SQL后端,并且事务是我自己实现的,该怎么办?
只有在 Commit成功后才能实现数据库中的数据持久化。因此,如果您的Commit在任何位置失败,数据将不会写入db。
你的设计很好(即使非常简约,没有真正的例子在里面…)
你可以想象,一旦你调用var transaction = connection.BeginTransaction();
如果你不调用commit,事务将不会被提交,所以catch会回滚它。
如果由于任何原因导致崩溃阻止了catch块的执行,SQL引擎将应用自动回滚