確認処理
確認処理のイベントのシーケンスは次のとおりです。
同期レベルを確立します。
確認要求を送信します。
データと確認要求を受け取ります。
確認要求に応答します。
会話の割り当てを解除します。
TP は、確認処理を使用して、データを含む確認要求を送信します。パートナー TP は、データの受信を確認するか、エラーが発生したことを示します。 2 つの TP が確認要求と応答を交換するたびに同期されます。
Note
このセクションの例ではこれを示していませんが、TP が呼び出し元 TP か呼び出し可能 TP かに関係なく、どの TP でもデータを送受信できます。
次の例は、確認処理を示しています。
呼び出し元 TP によって発行される | 呼び出し可能 TP によって発行される |
---|---|
TP_STARTED | |
MC_ALLOCATE | |
(synclevel=AP_CONFIRM_SYNC_LEVEL) | |
MC_SEND_DATA | |
(type=AP_SEND_DATA_CONFIRM) | |
RECEIVE_ALLOCATE | |
MC_RECEIVE_AND_WAIT | |
MC_SEND_DATA | |
(type=AP_SEND_DATA_DEALLOC_SYNC_LEVEL) | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(rtn_status=AP_YES) | |
(what_rcvd= DEALLOCATE AP_DATA_COMPLETE_CONFIRM_) | |
MC_CONFIRMED | |
TP_ENDED | TP_ENDED |
同期レベルの確立
MC_ALLOCATEの synclevel パラメーターによって、会話の同期レベルが決まります。 可能な同期レベルは 3 つあります。
確認処理が行われなかったAP_NONE。
AP_CONFIRM_SYNC_LEVEL、TP がデータの受信の確認を要求し、データの確認要求に応答できます。
AP_SYNCPT、同期ポイント レベル 2 で TP が動作し、データの受信確認がサポートされます。
確認要求の送信
型AP_SEND_DATA_CONFIRMを持つMC_SEND_DATAには、次の 2 つの効果があります。
ローカル LU の送信バッファーをフラッシュし、バッファーに含まれるすべてのデータをパートナー TP に送信します。
パートナー TP が受信動詞の what_rcvd パラメーターを介して受信する確認要求を送信します。
MC_SEND_DATAを発行した後、ローカル TP はパートナー TP からの確認を待機します。
データの受信と確認要求
MC_RECEIVE_AND_WAITの what_rcvd パラメーターは次を示します。
受信したデータの状態: 完了または不完全。
ローカル TP の将来の処理が予想されます。
この例では、 状態 が完了し、確認が要求されたことを示すwhat_rcvdがAP_DATA_COMPLETE_CONFIRMされています。
確認要求への応答
パートナー TP は、データの受信を確認するために MC_CONFIRMED を発行します。 これにより、ローカル TP が処理を再開できます。
会話の割り当てを解除する
MC_SEND_DATA は、次のすべての条件に該当する場合に、データを含む確認要求を送信します。
会話の同期レベル (MC_ALLOCATE の synclevel パラメーターによって確立) がAP_CONFIRM_SYNC_LEVEL。
MC_SEND_DATAの型パラメーターは、AP_SEND_DATA_DEALLOC_SYNC_LEVELに設定されます。
最後のMC_RECEIVE_AND_WAITのwhat_rcvd パラメーターがAP_DATA_COMPLETE_CONFIRM_DEALLOCATEされ、APPC が会話の割り当てを解除する前にデータの受信確認が必要であることを示します。 ローカル TP は、パートナー TP が MC_CONFIRMEDを発行するまで、この確認を待機します。