我试图了解如何确保仅在提交事务时将日志条目输入到文件系统中。请参阅下面的代码。
Using (scope As TransactionScope = new TransactionScope())
'write log log file (line 2)'
scope.complete
End Using
在事务范围完成之前写入日志文件的那一刻。
我已阅读有关IEnlistmentNotification
界面的信息。我知道SQLConnection
类允许事务和分布式事务。因此,我希望这个类能够实现IEnlistmentNotification
,但事实并非如此。为什么不呢?
答案 0 :(得分:2)
IEnlistmentNotification
来参与事务,但它不是由SQL连接或事务实现的。
如果您实现自己的事务资源管理器,您将实现该接口并使用transactions enlistment methods EnlistDurable
或EnlistVolatile
之一通知系统您要参与此事务。从此时起,您将收到对该界面的调用,该调用允许您对事务的状态做出反应并对其进行影响。
如果要以事务方式修改文件,则必须为此目的实现或查找资源管理器。该资源管理器将实施IEnlistmentNotification
并通过上述登记方法参与交易。