確認処理の一連のイベントは次のとおりです。
同期レベルを確立します。
確認要求を送信します。
データと確認要求を受信します。
確認要求に応答します。
会話の割り当てを解除します。
TP は、確認処理を使用して、データを含む確認要求を送信します。パートナー TP は、データの受信を確認するか、エラーが発生したことを示します。 2 つの TP が確認要求と応答を交換するたびに同期されます。
注
このセクションの例ではこれを示していませんが、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= AP_DATA_COMPLETE_CONFIRM_DEALLOCATE) | |
| MC_確認済み | |
| TP_終了 | TP_終了 |
同期レベルの確立
MC_ALLOCATEの synclevel パラメーターによって、会話の同期レベルが決まります。 次の 3 つの同期レベルが考えられます。
確認処理が行われないAP_NONE。
AP_CONFIRM_SYNC_LEVEL。この場合、TP はデータの受信確認を要求し、データの確認要求に応答できます。
AP_SYNCPTにおいて、TPは同期ポイントレベル2を用いて動作し、データ受信の確認がサポートされます。
確認要求の送信
型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を発行するまで、この確認を待機 します。