次の方法で共有


確認処理

確認処理の一連のイベントは次のとおりです。

  1. 同期レベルを確立します。

  2. 確認要求を送信します。

  3. データと確認要求を受信します。

  4. 確認要求に応答します。

  5. 会話の割り当てを解除します。

    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_ALLOCATEsynclevel パラメーターによって、会話の同期レベルが決まります。 次の 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_ALLOCATEsynclevel パラメーターによって確立) がAP_CONFIRM_SYNC_LEVEL。

  • MC_SEND_DATAの型パラメーターは AP_SEND_DATA_DEALLOC_SYNC_LEVEL に設定されます。

  • 最終的なMC_RECEIVE_AND_WAITwhat_rcvdパラメーターはAP_DATA_COMPLETE_CONFIRM_DEALLOCATEであり、これはAPPCが会話を割り当て解除する前にデータの受信確認が必要であることを示します。 ローカル TP は、パートナー TP がMC_CONFIRMEDを発行するまで、この確認を待機 します