溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

WCF事物處理是怎樣的

發(fā)布時(shí)間:2021-12-15 09:08:22 來源:億速云 閱讀:99 作者:iii 欄目:編程語言

這篇文章主要講解了“WCF事物處理是怎樣的”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“WCF事物處理是怎樣的”吧!

單純的事務(wù)存在著下面三個(gè)問題
1) 臟讀:簡單的說就是事務(wù)一在某一時(shí)刻更改了數(shù)據(jù),恰恰這個(gè)更改的數(shù)據(jù)被事務(wù)二讀取,而事務(wù)一卻最終失敗,導(dǎo)致數(shù)據(jù)回滾,那事務(wù)二就是一個(gè)受騙者
2) 非可重復(fù)性讀?。和粩?shù)據(jù)每次讀取的結(jié)果都不一樣就是非可重復(fù)讀取。比如事務(wù)一要讀取的數(shù)據(jù)務(wù)二改變,這就是非可重復(fù)性讀取
3) 幻讀:很簡單,比如事務(wù)一在查詢數(shù)據(jù)中,事務(wù)二卻插入了一個(gè)符合查詢條件的數(shù)據(jù),這樣就造成新插入數(shù)據(jù)的幻讀。

三種WCF事物處理問題的解釋可能比較難于理解,其實(shí)簡單的說,臟讀是讀了別人正在更改的數(shù)據(jù),而可重復(fù)讀取是更改了別人正在讀的數(shù)據(jù),而幻讀呢則是讀了別人還未來得及插入,更改或者刪除的數(shù)據(jù),我想這樣理解就簡單多了。針對(duì)上面不同的問題,可以設(shè)置事務(wù)的不同隔離方式來防止問題的發(fā)生,事務(wù)的隔離方式又包括
1) Any: 組件的隔離級(jí)別是從調(diào)用組件的隔離級(jí)別獲得的。如果組件是根組件,則隔離級(jí)別用于 Serializable 中。
2) ReadUncommitted:讀取未提交數(shù)據(jù),該方式在讀取數(shù)據(jù)時(shí)保持共享鎖定以避免讀取已修改的數(shù)據(jù),但在事務(wù)結(jié)束前可以更改這些數(shù)據(jù),這導(dǎo)致非可重復(fù)讀取或幻讀。
3) ReadCommitted:讀取提交數(shù)據(jù), 發(fā)出共享鎖定并允許非獨(dú)占方式的鎖定。該方式與讀取未提交數(shù)據(jù)相相似,這種方式看似和讀取未提交數(shù)據(jù)相似,但有一個(gè)區(qū)別,事務(wù)的只讀鎖在移到下一行的時(shí)候,會(huì)解鎖,而寫入鎖卻只有在事務(wù)完成或者被中止后才解鎖,事務(wù)要等待所有寫入鎖解鎖。
4) RepeatableRead:可重復(fù)性讀取,與讀取提交數(shù)據(jù)相似,在查詢中使用的所有數(shù)據(jù)上放置鎖,以防止其他用戶更新這些數(shù)據(jù)。防止非可重復(fù)讀取,但幻讀行仍有可能發(fā)生。該方式是只讀鎖也要等到事務(wù)結(jié)束或者中止才解除
5) Serializable:在完成事務(wù)前防止更新或插入。

從上面的描述看,幾種隔離方式比較難于區(qū)分,WCF事物處理是很難的一件事,但是記住這些更方便的了解隔離方式

隔離級(jí)別

ReadUncommitted

ReadCommitted

RepeatableRead

Serializable

臟讀

Yes

No

No

No

非可重復(fù)性讀取

Yes

Yes

No

No

幻讀

Yes

Yes

Yes

No

從上表可以看出隔離方式除了Any之外,一級(jí)比一級(jí)嚴(yán)厲。Any是一脈相承的,如果它沒有可繼承的,它將是最嚴(yán)厲的Serializable

感謝各位的閱讀,以上就是“WCF事物處理是怎樣的”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)WCF事物處理是怎樣的這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

wcf
AI