1
從MSDN entry for TransactionCompleted:TransactionCompleted事件的替代示例?
您可以爲此事件而不是使用揮發性入伍以獲取交易結果的信息登記。
注意事項註冊此事件會對其所附交易的業績產生負面影響。
有沒有人有一個例子,甚至解釋,如何在事務中登記,以便僅通知其完成?
從MSDN entry for TransactionCompleted:TransactionCompleted事件的替代示例?
您可以爲此事件而不是使用揮發性入伍以獲取交易結果的信息登記。
注意事項註冊此事件會對其所附交易的業績產生負面影響。
有沒有人有一個例子,甚至解釋,如何在事務中登記,以便僅通知其完成?
MSDN在這裏可能有點誤導。註冊事件的速度應該至少與獲得虛擬資源管理器一樣快(不是我測試過它)。
事情是,如果你登記,事務將成爲分佈式事務(因爲現在至少有兩個資源管理器參與)。這種事務比較慢(數據庫服務器的IO更多,或者你使用的是什麼)。
你仍然可以嘗試登記的方式。只需執行IEnlistmentNotification
並在每種方法中調用enlistment.Done()
。您還需要將代碼添加到Commit()
方法中。
然後將參考傳遞給交易的EnlistVolatile(..)
方法(選項設置爲None
)。
如果有多個*持久*資源管理器參與,事務將僅分佈。 'EnlistVolatile'永遠不會促進交易。 – 2014-03-27 01:28:14