マップされた会話の例
マップされた会話の背景情報については、「 基本会話とマップされた会話の比較」を参照してください。
マップされた会話の次の例は、会話の開始、データの交換、および会話の終了に使用される 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 します。