次の方法で共有


マップされた会話の例

マップされた会話の背景情報については、「 基本会話とマップされた会話の比較」を参照してください。

マップされた会話の次の例は、会話の開始、データの交換、および会話の終了に使用される APPC 動詞を示しています。 APPC 動詞パラメーターはかっこ内にあります。

呼び出し元 TP によって発行される 呼び出し可能 TP によって発行される
TP_STARTED
MC_ALLOCATE
MC_SEND_DATA
MC_DEALLOCATE
TP_ENDED RECEIVE_ALLOCATE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(rtn_status=AP_NO)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_DEALLOC_NORM)
TP_ENDED

次の段落では、マップされた会話で使用される動詞について説明します。

マップされた会話を開始するための動詞

マップされた会話を開始するために、呼び出し元 TP は次の動詞を発行します。

  • TP_STARTED。ローカル TP が会話を開始していることを APPC に通知します。

  • MC_ALLOCATE。これは、APPC がローカル TP とパートナー TP の間の会話を確立することを要求します。

    呼び出し可能 TP は RECEIVE_ALLOCATE発行します。これにより、呼び出し元 TP との会話を開始する準備ができていることを APPC に通知します。

マップされた会話でデータを送信するための動詞

MC_SEND_DATA は、ローカル LU の送信バッファーに 1 つのデータ レコード (送信するアプリケーション データを含むレコード) を格納します。 パートナー TP へのデータ転送は、次のいずれかのイベントが発生するまで行われません。

  • 送信バッファーがいっぱいになります。

  • 送信側 TP は、APPC がバッファーをフラッシュし、パートナー TP にデータを送信するように強制する動詞を発行します。

    前の例では、送信バッファーにデータ レコードと MC_ALLOCATE 要求 (データ レコードの前) の両方が含まれています。 したがって、この例では、 MC_DEALLOCATE はバッファーをフラッシュし、 MC_ALLOCATE 要求とデータ レコードをパートナー TP に送信します。 バッファーをフラッシュするその他の動詞は 、MC_CONFIRM され 、MC_FLUSHされます。

マップされた会話でデータを受信するための動詞

MC_RECEIVE_AND_WAIT動詞を使用すると、TP はデータ レコードまたは状態情報を受け取ることができます。 現在使用可能なデータがない場合、TP はデータの到着を待機します。 Windows システムの場合は、この呼び出 のブロック バージョンではなく、 WinAsyncAPPC と組み合わせてMC_RECEIVE_AND_WAITを発行します。

この例では、受け取った TP の問題 MC_RECEIVE_AND_WAIT 2 回です。 初めて、動詞を発行してデータを受信します。 完全なデータ レコードの受信が完了すると (what_rcvd がAP_DATA_COMPLETE)、リターン コードを受け取 るためにMC_RECEIVE_AND_WAITが 再度発行されます。 戻りコード AP_DEALLOC_NORMALは、会話の割り当てが解除されたことを示します。

Note

MC_RECEIVE_IMMEDIATE は、MC_RECEIVE_AND_WAITと同じ機能 実行しますが、パートナー TP からデータが現在使用できない場合は待機しません。 代わりに、呼び出し元の TP に対してデータを使用できない応答を返します。

マップされた会話を終了するための動詞

マップされた会話を終了するために、1 つの TP が MC_DEALLOCATEを発行すると、APPC は 2 つの TP 間の会話の割り当てを解除します。

会話の割り当てが解除されると、両方の TP で 問題がTP_ENDED

Note

TP は複数の会話に同時に参加できます。 この場合、TP は、すべての会話の割り当てが解除された後に TP_ENDED します。