次の方法で共有


会話の状態の変更

会話の状態を変更すると、次の結果が生じる可能性があります。

  • ローカル TP によって発行される動詞。

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

  • エラー条件。

    次の例は、APPC 動詞が会話の状態を SEND から RECEIVE に、RECEIVE から SEND に変更する方法を示しています。

Note

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

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

呼び出し元 TP によって発行される 呼び出し可能 TP によって発行される
TP_STARTED
会話の状態: RESET
MC_ALLOCATE
(synclevel=AP_CONFIRM_SYNC_LEVL)
会話の状態: SEND
MC_SEND_DATA
MC_PREPARE_TO_RECEIVE
(ptr_type=AP_SYNC_LEVEL)
会話の状態: RESET
RECEIVE_ALLOCATE
会話の状態: RECEIVE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_SEND)
会話の状態: CONFIRM_SEND
MC_CONFIRMED
会話の状態: SEND
MC_SEND_DATA
MC_CONFIRM
会話の状態: RECEIVE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_WHAT_RECEIVED)
会話の状態: CONFIRM
MC_REQUEST_TO_SEND
MC_CONFIRMED
(rts_rcvd=AP_YES)
MC_PREPARE_TO_RECEIVE
(ptr_type=AP_SYNC_LEVEL)
会話の状態: RECEIVE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_SEND)
会話の状態: CONFIRM_SEND
MC_CONFIRMED
会話の状態: SEND
MC_SEND_DATA
MC_DEALLOCATE
(dealloc_type=AP_SYNC_LEVEL)
会話の状態: RECEIVE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_DEALLOCATE)
会話の状態: CONFIRM_DEALLOCATE
MC_CONFIRMED
会話の状態: RESET 会話の状態: RESET
TP_ENDED TP_ENDED

初期状態

会話が割り当てられる前に、両方の 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 に設定されます。

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

Note

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

SEND 状態への変更

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

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

Note

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