リモートで開始された会話
リモートで開始された会話 (受信アタッチ) を受信するアプリケーションは、 RECEIVE_ALLOCATE 動詞を発行します。 同期ポイントのサポートに対応するために、 RECEIVE_ALLOCATE 動詞は次のようにいくつかの方法で変更されます。
RECEIVE_ALLOCATE動詞の返されるsync_level パラメーターは、AP_SYNCPTの値を受け取ることができ、会話が同期ポイントの会話であることを指定します。 sync_level パラメーターの値は、新しい会話でGET_ATTRIBUTES動詞を発行することによっても決定できます。
新しいパラメーターによってプログラム開始パラメーター (PIP) データを受信するためのサポートが 、RECEIVE_ALLOCATE 動詞に追加されます。
pip_incoming パラメーターは、受信 PIP データを受け入れるかどうかを示すようにアプリケーションによって設定され、PIP データを受信できるかどうかを示すために Host Integration Server によって返されます。 アプリケーションが PIP データを受信したくない場合は、RECEIVE_ALLOCATE動詞を発行する前に、このメンバーを既定の AP_NO に設定する必要があります。 PIP データを受け入れる場合は、このメンバーを AP_YES に設定する必要があります。 RECEIVE_ALLOCATE動詞が完了すると、このメンバーは、アプリケーションで PIP データを受信できる場合はAP_YESに、それ以外の場合はAP_NOに設定されます。
PIP データが使用可能な場合、アプリケーションは、RECEIVE_ALLOCATE動詞の完了時にデータを受信するための動詞の 1 つを発行することで、 それを 受け取ることができます。 基本的な会話の場合、これらの受信動詞には 、RECEIVE_AND_POST、 RECEIVE_AND_WAIT、RECEIVE_IMMEDIATEが含 まれます。 基本的な会話では、PIP データの一般的なデータ ストリーム (GDS) ヘッダー (GDS 識別子0x12F5) を含む PIP データが返されます。 マップされた会話の場合、これらの受信動詞には 、MC_RECEIVE_AND_POST、 MC_RECEIVE_AND_WAIT、MC_RECEIVE_IMMEDIATEが含 まれます。 マップされた会話では、Host Integration Server は 4 バイトの GDS ヘッダーを削除し、PIP データのみを返します。
基本的な会話の場合、PIP データを受信する前にアプリケーションが SEND_ERROR、 DEALLOCATE、または TP_ENDED 動詞を発行すると、PIP データは破棄されます。 マップされた会話の場合、PIP データを受信する前にアプリケーションが MC_SEND_ERROR、 MC_DEALLOCATE、または TP_ENDED 動詞を発行すると、PIP データは破棄されます。
PIP データを受信できない、または受信したくない TP に対して PIP データが受信された場合、スレッドはAP_ALLOCATION_ERRORのプライマリリターンコードとAP_PIP_NOT_ALLOWEDのセカンダリリターンコードで拒否されます。