成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

快速掌握ADO.NET資源管理器原理機制

開發 后端
ADO.NET資源管理器的持久性(反之為可變性)是指資源管理器是否支持故障恢復,文章做出了詳細的介紹,希望對大家有幫助。

ADO.NET還是比較常用的,于是我研究了一下ADO.NET資源管理器,在這里拿出來和大家分享一下,希望對大家有用。事務中使用的每個資源都由資源管理器進行管理,而后者的操作則由事務管理器進行協調。資源管理器與事務管理器協調工作,為應用程序提供了原子性和隔離性的保證。例如,Microsoft SQL Server、持久消息隊列、內存中的哈希表都是ADO.NET資源管理器。

#T#ADO.NET資源管理器可管理持久或可變數據。資源管理器的持久性(反之為可變性)是指資源管理器是否支持故障恢復。如果資源管理器支持故障恢復,則它會在第 1 階段(準備階段)將數據保存到持久存儲區中;這樣,一旦資源管理器出現故障,它就可在恢復時在事務中重新登記,并根據從 TM 接收到的通知執行適當的操作。通常,可變資源管理器管理如內存中的數據結構之類的可變資源(如內存中的事務處理哈希表),而持久資源管理器則管理具有更持久的后備存儲區的資源(例如,其后備存儲區為磁盤的數據庫)。

資源若要參與事務,它必須在事務中進行登記。Transaction 類定義了一組提供此功能的方法,這些方法的名稱以 Enlist 開頭。不同的 Enlist 方法對應于資源管理器可能具有的不同登記類型。具體來說,EnlistVolatile 方法用于登記可變資源,而 EnlistDurable 方法則用于登記持久資源。為了簡單起見,在根據資源的持久性支持決定是使用 EnlistDurable 還是 EnlistVolatile 方法后,應為資源管理器實現 IEnlistmentNotification 接口,從而將資源登記為參與兩階段提交 (2PC)。有關 2PC 的更多信息,請參見在單階段和多階段中提交事務。

通過登記,資源管理器可確保在事務提交或中止時能夠從事務管理器獲取回調。每個登記都有一個 IEnlistmentNotification 實例。通常情況下,在每個事務中只執行一次登記,但資源管理器可選擇在同一事務中執行多次登記。

登記后,ADO.NET資源管理器會對事務的請求做出響應。持久資源管理器存儲了足夠的信息,可允許在它所管理的資源上撤消或重做事務的工作。可以使用許多方法來實現此目的;最常采用的兩種方法是保存數據版本和保存更改日志。

當應用程序提交事務時,事務管理器會啟動兩階段提交協議。事務管理器先向每個已登記的資源管理器詢問它是否已準備好提交事務。資源管理器必須準備好提交,即它自身準備好提交或中止事務。

在準備階段,持久資源管理器會將舊數據和新數據記錄到固定存儲區中,以便即使系統出現故障,資源管理器也可恢復數據。如果資源管理器準備就緒,就會向事務管理器通知有關它是提交還是中止事務的投票。如果有任何資源管理器報告準備失敗,則事務管理器會將回滾命令發送給每個資源管理器,并向應用程序指出提交失敗。

在準備就緒后,資源管理器必須等待,直到它在第 2 階段中從事務管理器獲取提交或中止回調為止。通常,整個準備和提交協議不到一秒即可完成。如果發生系統或通信故障,則提交或中止通知可能無法在幾分鐘或幾小時內送達。在此期間,資源管理器將無法確定事務的結果,即不知道事務是已提交還是已中止。當資源管理器不確定事務狀態時,它會通過使事務處于鎖定狀態來保留已修改的數據,從而將這些更改與任何其他事務隔離開。

如果資源管理器發生故障,則除了在發生故障之前已準備或提交的事務之外,其余所有已登記事務都將中止。當持久資源管理器重新啟動時,它會通過檢索在準備階段編寫的準備信息重新構建資源的已提交狀態,并相應地提交或中止這些事務。

總之,兩階段提交協議和資源管理器共同使事務具有了原子性和持久性。

Transaction 類還提供了 EnlistPromotableSinglePhase 方法來登記可提升的單階段登記 (PSPE)。這使持久資源管理器 (RM) 可承載和“擁有”以后可在需要時升級為由 MSDTC 進行管理的事務。有關此內容的更多信息,請參見使用單階段提交和可提升的單階段通知進行優化。

 

責任編輯:田樹 來源: 博客
相關推薦

2009-11-11 11:08:03

ADO.NET存儲過程

2009-06-30 12:15:09

資源管理器Oracle性能

2009-11-11 17:24:59

ADO.NET連接管理

2009-11-12 09:36:32

ADO.NET Sql

2011-08-09 16:12:39

Windows7資源管理器

2009-11-12 10:32:47

ADO.NET技術

2009-11-13 17:20:35

ADO.NET數據集工

2010-01-08 08:54:41

Windows 7資源管理器

2013-04-18 15:53:46

SLURM開源分布式資源管理

2009-02-17 20:16:00

Vista加標題資源管理器

2011-02-23 10:06:25

konqueror

2023-08-29 06:22:18

Windows 10微軟

2009-09-07 09:08:50

Windows 7資源管理器鏈接

2012-07-30 15:22:21

Win 7操作系統

2012-08-27 14:01:18

VS 2012

2011-08-19 10:31:08

資源管理器

2010-01-14 09:07:31

Windows 7導航面板

2011-08-30 09:45:04

Windows 8

2019-07-18 09:56:50

Windows 10資源管理器文件

2009-11-11 10:27:22

ADO.NET入門
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕视频在线 | 日韩欧美亚洲 | 伊人网99 | 一区二区日韩精品 | 一区二区三区视频在线观看 | 人人九九精 | 最新中文字幕一区 | 国产精品一区视频 | 99久久99| 精品久久香蕉国产线看观看亚洲 | 欧洲视频一区 | 7777久久 | 99久久免费精品视频 | 亚洲aⅴ| 99re6在线 | 精国产品一区二区三区四季综 | 超碰97在线免费 | 看av网 | 精品一区二区免费视频 | 久久国产成人 | 男女搞网站| 欧美日韩国产在线 | 99r在线| 天堂一区 | 国产激情视频网址 | 国产1区 | 亚洲国产精品区 | 在线日韩在线 | 欧美视频二区 | 一级做a爰片性色毛片 | 色伊人| 国产美女永久免费无遮挡 | 亚洲视频免费在线观看 | 亚洲性人人天天夜夜摸 | 亚洲国产精品第一区二区 | 国产传媒视频在线观看 | 台湾佬伊人 | 国产探花在线精品一区二区 | 精品久久久久久亚洲综合网 | 看片地址| 国产成在线观看免费视频 |