TransactionScope使用(四)——逾時和隔離等級設定

來源:互聯網
上載者:User

事務逾時設定

可以通過TransactionOptions對象設定Timeout後作為參數在建立TransactionScope的時候傳進去設定事務的逾時。如果設定為0表示不限制時間,這種情況最好在調試中使用。

在範圍聯結環境事務但所指定的逾時值小於為該環境事務所設定的逾時值時,會在 TransactionScope 對象上強制實施較小的逾時值,並且該範圍必須在指定的嵌套時間內結束,否則會自動中止事務。如果嵌套範圍的逾時值大於環境事務的逾時值,則前者無效。

隔離等級設定

   可以通過TransactionOptions對象設定IsolationLevel後作為參數在建立TransactionScope的時候傳進去設定事務的隔離等級,預設的隔離等級是Serializable。IsolationLevel是個枚舉,以下說明載錄自MSDN對其的說明。

 

Chaos

無法改寫隔離等級更高的事務中的暫止的變更。 

 

ReadCommitted

不可以在事務期間讀取可變資料,但是可以修改它。 

 

ReadUncommitted

可以在事務期間讀取和修改可變資料。 

 

RepeatableRead

可以在事務期間讀取可變資料,但是不可以修改。可以在事務期間添加新資料。 

 

Serializable

可以在事務期間讀取可變資料,但是不可以修改,也不可以添加任何新資料。 

 

Snapshot

可以讀取可變資料。在事務修改資料之前,它驗證在它最初讀取資料之後另一個事務是否更改過這些資料。如果資料已被更新,則會引發錯誤。這樣使事務可擷取先前提交的資料值。 

在嘗試提升以此隔離等級建立的事務時,將引發一個 InvalidOperationException,併產生錯誤資訊“Transactions with IsolationLevel Snapshot cannot be promoted”(無法提升具有 IsolationLevel 快照的事務)。

 

Unspecified

正在使用與指定隔離等級不同的隔離等級,但是無法確定該層級。如果設定了此值,則會引發異常。 

在使用嵌套的 TransactionScope 對象時,如果要聯結環境事務,則必須將所有嵌套範圍配置為使用完全相同的隔離等級。如果嵌套的 TransactionScope 對象嘗試聯結環境事務但卻指定了不同的隔離等級,則會引發 ArgumentException。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.