售前電話
135-3656-7657
售前電話 : 135-3656-7657
在ccb.cptlb.state中存放的CCB的狀態(tài)可具有以下的值:
•onfreeqCCB在空閑隊(duì)列中。
•onreadyq2CCB在呼出隊(duì)列中,可以有1至2封信件編在ccb.cptlb.letterq,呼出代理的TSW應(yīng)與CCB鏈接。
•onreadyqlCCB在進(jìn)行隊(duì)列中,可以有1至2封信件以及1.314.個(gè)或多個(gè)TSW與CCB鏈接。
•linked_cpmbCCB與CDB及其相關(guān)的進(jìn)程鏈接,有一個(gè)或多個(gè)TSW與CCB鏈接,也可能有信件鏈接。
•linked_nocpmb呼叫在壓縮期間»CCB不與CDB勾連,也無(wú)信件勾連,但至少有一個(gè)TSW鏈接到CCB.
•unavailable表示呼叫在進(jìn)行差錯(cuò)恢復(fù)的處理。
圖5.19表示了CCB的狀態(tài)轉(zhuǎn)移。
對(duì)照?qǐng)D5.19中的數(shù)字,說(shuō)明如下:
①收到呼出消息。收到呼出消息將使CCB從狀態(tài)onfreeq轉(zhuǎn)移到onreadyq2。
②收到后繼消息,啟動(dòng)新的事務(wù)處理。在狀態(tài)onreadyq2或on-readyql收到消息,呼叫進(jìn)程開(kāi)始新的事務(wù)處理,CCB就轉(zhuǎn)移到狀態(tài)linked_cpmbo此時(shí)應(yīng)與呼叫進(jìn)程及CDB,相鏈接。
(a)呼出進(jìn)程先從進(jìn)行隊(duì)列(CCB在狀態(tài)onreadyql)取出CCB,處理完變成空鏈后才從呼出隊(duì)列中取出CCB(CCB在狀態(tài)on-readyq2)o取出一個(gè)CCB后,就與CDB勾連。
(b)與CCB鏈接的第一封信件內(nèi)容復(fù)制到cdb.message中,信件歸還到可用隊(duì)列。
(c)呼叫進(jìn)程按照發(fā)送消息的代理屬性,用表格驅(qū)動(dòng)方式調(diào)用相應(yīng)的呼叫處理應(yīng)用過(guò)程。
(d)如兩個(gè)隊(duì)列都為空鏈,呼叫進(jìn)程自身掛起在availcpmbs隊(duì)列。
③呼叫壓縮。當(dāng)呼叫壓縮時(shí),CCB從linked.cpmb轉(zhuǎn)移到linked_nocpmbo呼叫壓縮發(fā)生于以下情況:
(a)當(dāng)前的事務(wù)處理完成。
(b)如有2封信件,則處理完第1封信件后,又處理下一個(gè)事務(wù)。當(dāng)無(wú)信件鏈接在CCB±時(shí),呼叫被壓縮。
④壓縮的呼叫收到進(jìn)展的消息。CCB從狀態(tài)linked-nocpmb轉(zhuǎn)移到onreadyqlo
⑤呼叫正常終止。呼叫結(jié)束時(shí),CCB從狀態(tài)linked_cpmb轉(zhuǎn)移到onfreeqo此時(shí),應(yīng)無(wú)任何TSW、信件、CDB、ECCB等與CCB勾連。CCB內(nèi)容初始化,返回到可用隊(duì)列,CCB的順序號(hào)則加K
⑥發(fā)生嚴(yán)重故障。當(dāng)發(fā)生嚴(yán)重故障或陷阱時(shí),可從任何狀態(tài)轉(zhuǎn)移到unavailable狀態(tài),呼叫進(jìn)程被殺死,向呼叫父進(jìn)程發(fā)送死亡消息。圖5.19中表示的是從linked^cpmb轉(zhuǎn)移到unavailableo
⑦在嚴(yán)重故障后清除呼叫。當(dāng)從嚴(yán)重故障或陷阱中恢復(fù)后,父進(jìn)程重新創(chuàng)建呼叫進(jìn)程,將呼叫清除,CCB從狀態(tài)unavailable轉(zhuǎn)移^|<Hifreeqo
⑧呼叫執(zhí)行等待或延遲。CCB在狀態(tài)linked_cpmb時(shí),呼叫進(jìn)程可以將自身掛起在定時(shí)隊(duì)列以等待一消息或執(zhí)行延遲操作。在此館況下,CCB的狀態(tài)不變。
⑨等待超時(shí)、收到消息或延時(shí)已到。在等待超時(shí)、未超時(shí)而收到浪懇,或菇時(shí)已到時(shí)間,呼叫進(jìn)程將準(zhǔn)備運(yùn)行。CCB的狀態(tài)仍在linked_cpmb。