新聞中心
對(duì)于ADO處理要非常的謹(jǐn)慎,我們的大多數(shù)beta版產(chǎn)品的質(zhì)量都同Microsoft已發(fā)布的產(chǎn)品的質(zhì)量是一樣的,只有對(duì)數(shù)據(jù)準(zhǔn)確性要求極高并且用戶可以忍受等待的情況下,使用這種并發(fā)沖突的處理方法。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到寬城網(wǎng)站設(shè)計(jì)與寬城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋寬城地區(qū)。
1. 放任不管方式:
與其說(shuō)這是一種處理并發(fā)沖突的方式,不如說(shuō),它是一種沒(méi)有對(duì)并發(fā)沖突做任何處理的方式。但是在許多過(guò)去的系統(tǒng)里,由于沒(méi)有考慮到多用戶、網(wǎng)絡(luò)應(yīng)用等情況,這種"處理方式"還真存在于不少系統(tǒng)中。
舉例來(lái)說(shuō),A、B兩人從數(shù)據(jù)庫(kù)中獲取了同一個(gè)筆記本的信息,例如:IBM ThinkPad T61吧。然后:A把牌子改成了:Lenovo ThinkPad,B把型號(hào)改成了T61 8890A24。然后,他們開(kāi)始提交了。此時(shí),如果A先提交,然后B提交,那么,最后的結(jié)果是:IBM ThinkPad T61 8890A24ADO處理;反之,則變成Lenovo ThinkPad T61。
總之一句話,誰(shuí)最后提交誰(shuí)老大。想像一下,如果A修改了1000個(gè)屬性的值,B修改了1個(gè)屬性的值,那么,對(duì)于先提交的A來(lái)說(shuō),這將是一個(gè)多么慘痛的打擊:-) 雖然這種放任不管的方式似乎不太負(fù)責(zé)任,但是,其處理性能卻是相對(duì)較高的。
2. 開(kāi)放式并發(fā)處理
開(kāi)放式并發(fā)處理,老外叫做Optimistic Concurrency——樂(lè)觀的并發(fā)。這種并發(fā)處理方式要求我們對(duì)并發(fā)抱有一種樂(lè)觀的態(tài)度:百分之九十九點(diǎn)九九不會(huì)發(fā)生并發(fā)沖突,萬(wàn)一發(fā)生了,系統(tǒng)也能捕獲到?jīng)_突,或者根據(jù)策略自動(dòng)處理,或者,就提醒一下用戶,讓用戶來(lái)決定是不是要繼續(xù)提交。
仍然用上面的例子來(lái)說(shuō)這事兒:A、B兩個(gè)人同時(shí)獲取了筆記本的信息:IBM ThinkPad T61。然后……(此處跟上例做一樣的修改,直到提交)此時(shí),如果A先提交,那么,B提交的時(shí)候,系統(tǒng)會(huì)發(fā)現(xiàn),哎喲,不好,有并發(fā)沖突了,就會(huì)拋個(gè)異常給B,讓B知道,發(fā)生并發(fā)沖突了ADO處理,然后,B就可以根據(jù)實(shí)際情況,選擇相應(yīng)的處理策略(比如,繼續(xù)提交進(jìn)行覆蓋或者取消提交等等);相反,如果B先提交,那么,A提交時(shí),就會(huì)得到相應(yīng)的提醒。 #t#
這樣的并發(fā)處理方式,可以說(shuō)在可靠性與性能上取得平衡,適合于對(duì)數(shù)據(jù)可靠性要求不是特別嚴(yán)格,需要較高的性能,并且不會(huì)大量發(fā)生并發(fā)的場(chǎng)合。
3. 保守式并發(fā)ADO處理
這是最為嚴(yán)謹(jǐn)?shù)囊环N并發(fā)沖突的處理方式。它把并發(fā)轉(zhuǎn)化為了串行操作。 例如,A從數(shù)據(jù)庫(kù)中獲取了筆記本信息:IBM ThinkPad T61,B也要對(duì)其進(jìn)行修改,但此時(shí)由于A已經(jīng)從數(shù)據(jù)庫(kù)中將數(shù)據(jù)取出,因此,B被置于等待狀態(tài)。直到A把數(shù)據(jù)修改完提交了,ADO處理數(shù)據(jù)庫(kù)數(shù)據(jù)更新為L(zhǎng)enovo ThinkPad T61了,此時(shí),數(shù)據(jù)庫(kù)才把數(shù)據(jù)給B,那么B就可以在Lenovo ThinkPad T61的基礎(chǔ)上,把它修改為L(zhǎng)enovo ThinkPad T61 8890A24。而在B提交前,其它一切針對(duì)此記錄的操作都得排除等著B(niǎo)。
這樣子當(dāng)然非常理想,由于不存在并發(fā),自然也就消除了并發(fā)沖突的問(wèn)題。但是,ADO處理這種鎖也存在著較為隱蔽的風(fēng)險(xiǎn):如果A修改了數(shù)據(jù),一直不提交,或者A因?yàn)楣收希瑳](méi)有辦法提交,那么,其它所有的相關(guān)的操作,都將被阻礙住。因此,只有對(duì)數(shù)據(jù)準(zhǔn)確性要求極高并且用戶可以忍受等待的情況下,使用這種并發(fā)沖突的處理方法。
網(wǎng)站名稱:仔細(xì)探討ADO處理方法進(jìn)行學(xué)習(xí)思考
文章轉(zhuǎn)載:http://fisionsoft.com.cn/article/cohhceg.html


咨詢
建站咨詢
