会話のステータスの変更

会話状態の変更の結果として、次の結果が生じる場合があります。

  • ローカルTPによって発行されたコマンド。

  • パートナー TP によって発行された動詞。

  • エラーの状態。

    次の例は、APPC 動詞がメッセージ交換の状態を SEND から RECEIVE に、RECEIVE から SEND に変更する方法を示しています。

注

TP は、呼び出し元 TP (会話を開始した TP) と呼び出し可能 TP (会話を開始する要求に応答した TP) のいずれであるかに関係なく、データを送受信できます。

この例では、APPC 動詞で会話の状態を変更する方法を示します。 この表では、各会話状態は太字で表示され、その状態の間に使用される APPC 動詞の前に表示されます。

呼び出し元の TP によって発行される 呼び出し可能 TP によって発行される
TP_STARTED
会話の状態: RESET
MC_ALLOCATE
(synclevel=AP_CONFIRM_SYNC_LEVL)
会話の状態: SEND
MC_SEND_DATA
MC_受信の準備
(ptr_type=AP_SYNC_LEVEL)
会話の状態: RESET
RECEIVE_ALLOCATE
会話の状態: RECEIVE
MC_受信と待機
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_受信と待機
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_SEND)
会話の状態: CONFIRM_SEND
MC_CONFIRMED
会話の状態: SEND
MC_データ送信
MC_CONFIRM
会話の状態: RECEIVE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_受信と待機
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_WHAT_RECEIVED)
会話の状態: CONFIRM
MC_REQUEST_TO_SEND
確認された_MC
(rts_rcvd=AP_YES)
MC_PREPARE_TO_RECEIVE
(ptr_type=AP_SYNC_LEVEL)
会話の状態: RECEIVE
受信して待機する
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_SEND)
会話の状態: CONFIRM_SEND
MC_確認済み
会話の状態: SEND
MC_データ送信
MC_DEALLOCATE
(dealloc_type=AP_SYNC_LEVEL)
会話の状態: RECEIVE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
受信と待機
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_DEALLOCATE)
会話の状態: CONFIRM_DEALLOCATE
MC_CONFIRMED
会話の状態: RESET 会話の状態: RESET
処理終了 TP終了

初期状態

会話が割り当てられる前に、両方の TP の状態が RESET になります。

この例では、会話が割り当てられた後の初期状態は、呼び出し元 TP の場合は SEND、呼び出し可能 TP の場合は RECEIVE です。

RECEIVE 状態への変更

MC_PREPARE_TO_RECEIVE では、TP がメッセージ交換を SEND から RECEIVE 状態に変更できます。 この動詞:

  • ローカル LU の送信バッファーをフラッシュします。

  • 受信動詞のwhat_rcvd パラメーターを使用して、 AP_CONFIRM_SEND インジケーターをパートナー TP に送信します。 このインジケーターは、パートナー TP がデータの送信を開始する前に 、MC_CONFIRMED 応答が予想されることをパートナー TP に通知します。

    確認処理は、次の条件に該当する場合に実行されます。

  • ptr_type パラメーターは AP_SYNC_LEVEL に設定されます。

  • 会話の同期レベルは AP_CONFIRM_SYNC_LEVEL に設定されます。

    確認処理の詳細については、 確認処理を参照してください。

注

SEND 状態の間にMC_RECEIVE_AND_WAITを発行すると、LUの送信バッファーがフラッシュされ、対話状態がRECEIVEに変更されます。 この方法で会話状態を変更しても、確認処理はサポートされません。

SEND 状態への変更

MC_REQUEST_TO_SEND は、(会話が SEND 状態にある) ローカル TP (会話が RECEIVE 状態にある) がデータを送信することをパートナー TP に通知します。 この要求は、 MC_CONFIRMの rts_rcvd パラメーターを使用してパートナー TP に通知 されます。 ( rts_rcvd パラメーターは、 MC_SEND_DATA およびその他の動詞にも返されます)。

パートナー TP が MC_PREPARE_TO_RECEIVEを発行すると、会話の状態がパートナー TP の RECEIVE に変わり、ローカル TP がデータを送信できるようになります。

注

MC_REQUEST_TO_SENDを発行しても、会話の状態は変更されません。 送信要求を受け取ると、パートナー TP は会話の状態を変更する必要はありません。要求は無視できます。