我正在通過執行IEnlistmentNotification
來創建資源管理器。我正在嘗試創建一個持久的RM,爲我提出了一些問題。耐用資源管理器(IEnlistmentNotification)恢復
如果有每筆交易的
IEnlistmentNotification
對象或應一個IEnlistmentNotification
對象處理所有的事務嗎?我認爲每筆交易都希望自己擁有這筆交易,因此可以爲每筆交易進行準備/提交/回滾。
恢復文件是如何處理的?
我的假設是,事務中發生的一切都將在Prepare期間寫入恢復文件。
每筆交易的信息如何分開?我認爲每個事務都有一個單獨的文件,或者每個恢復操作的單個文件都有一個事務ID。
當恢復發生時,
Transaction.Current.TransactionInformation.DistributedIdentifier/LocalIdentifier
與崩潰前相同嗎?因此,可以使用這些ID中的一個在恢復期間識別事務。恢復是如何發生的?
如果我的
TransactionScope
在我的資源管理器內部被使用,並且系統崩潰(插入被拉或任何其他內容),系統恢復時如何恢復?我假設一些運行代碼的進程知道系統崩潰或其他什麼東西?在那種情況下,設置了哪些系統/程序/服務來實際處理恢復?