次の方法で共有


会話のステータスの変更

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

  • ローカル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 は会話の状態を変更する必要はありません。要求は無視できます。