System.Transactions事务超时设置
System.Transactions 有2個超時屬性(timeout 與 maxTimeout),可以通過配置文件來進行設置。
1. timeout
System.Transactions 默認的timeout值為1分鐘,可以通過app.config/web.config/machine.config來進行設置(對于應用中具體的事務還可以通過調用具體對象TransactionScope或CommittableTransaction的構造函數進行設置)。以下配置樣例代碼將其設置為30秒:
<configuration><system.transactions><defaultSettings timeout="00:00:30" /></system.transactions> </configuration>2. maximum transaction timeout
System.Transactions此外還有一個屬性: maximum transaction timeout,該屬性主要是系統管理員用于限制事務超時,其默認值為10分鐘,并且不可在代碼中覆蓋設置。如果在配置文件或者代碼中所設置的超時值均已超出該值,則以該值為準。maximum transaction timeout只能在machine.config文件中進行配置,以下配置樣例代碼將其設置為30分鐘:
<configuration><system.transactions><machineSettings maxTimeout="00:30:00" /></system.transactions> </configuration>綜上所述,即使在應用的配置文件或代碼中將timeout設置為0,試圖將事務超時時間設置為無限長也是無效的,整個事務的實際超時時間還是為machineSetting的maxTimeout值所限制。
?
注:代碼中設置非默認時這樣寫:
using (var scope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 3, 0)))
TransactionScopeOption.Required為默認,主要為后面的時間參數
轉載于:https://www.cnblogs.com/ceci/p/4203029.html
總結
以上是生活随笔為你收集整理的System.Transactions事务超时设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML5之地理信息应用 获取自己的位置
- 下一篇: 【Spring实战】注入非Spring