次の方法で共有


受信データ

このセクションでは、アプリケーションからローカル ノードへの受信データ フローについて説明します。 説明されているプロトコルの全体的な構造は、システム サービス制御ポイント (SSCP) とプライマリ論理ユニット (PLU) 接続に適用されますが、より複雑な側面 (遅延要求モードの使用など) は PLU 接続にのみ適用されます。

アプリケーションは、次のように、任意の接続で受信データを送信できます。

  • ホスト SSCP 用の機能管理データ ネットワーク サービス (FMD NS) (セッション サービス) と関数管理データ (FMD) の文字コード化データは、SSCP 接続のローカル ノードに送信する必要があります。

  • ホスト PLU 用の FMD データは、PLU 接続のローカル ノードに送信する必要があります。

    アプリケーションは 、データ メッセージを使用してデータ フロー制御 (DFC) またはセッション制御要求メッセージをホストに送信できません。 代わりにStatus-Controlメッセージを使用する必要があります。 (詳細については、「 Status-Control メッセージ」を参照してください)。

    すべての接続について、アプリケーションは データ メッセージのヘッダーの特定のキー フィールドに入力する必要があります。 特に、次の必要があります。

  • メッセージの種類を DATAFMI に設定します。

  • この接続の受信 データ メッセージに新しいメッセージ キーを割り当てます。

  • 必要に応じて 、ACKRQD フィールドを設定します。

  • アプリケーション フラグを設定します。 (詳細については、「 アプリケーション フラグ」を参照してください)。

    メッセージ ヘッダー内の nxtqptrhdreptrnumelts フィールド、およびメッセージ要素の elteptr フィールドと 開始 フィールドは、Host Integration Server バッファー管理ルーチンによって設定されます。 (詳細については、 DL-BASE/DMOD インターフェイスを参照してください。アプリケーションは、endd フィールドの設定を担当します。

    アプリケーションがこれらのルーチンにアクセスできない場合 (たとえば、オペレーティング環境でタスク間プロシージャ呼び出しと共有メモリがサポートされていない場合)、ヘッダー内のすべてのフィールドをアプリケーションで設定する必要があります。

    インバウンド ・データ ・メッセージでは、伝送ヘッダー (TH) および応答ヘッダー (RH) 標識をアプリケーションで使用できません。 アプリケーションでは、チェーンや方向などを制御するために、メッセージ ヘッダーに適切なアプリケーション フラグを設定する必要があります。 受信データに使用できるアプリケーション フラグの説明と、受信データ フローの制御にフラグを使用する方法については、このセクションの以降のトピックの「 アプリケーション フラグ」を参照してください。

    受信データの場合、最初のバイトは標準関数管理インターフェイス (FMI) の RU[0] です。

    受信データ メッセージ ヘッダー内のアプリケーションによって提供されるメッセージ キーは、ローカル ノードによって使用され、送信状態確認が参照するこの接続上のデータ メッセージを示します。 アプリケーションは、ローカル ノードとの接続ごとに受信データ フローの一意のメッセージ キー シーケンスを保持する必要があります。そのため、アプリケーションはメッセージ キーを使用して、接続の受信 データ メッセージと送信 状態確認 メッセージを関連付けることができます。 アプリケーションは、複数の RQE LUSTAT メッセージを区別するために、Status-Control 要求メッセージにメッセージ・キーも提供する必要があることに注意してください。

    受信データ受信確認プロトコルは、次のように、セッションで使用されているセカンダリ チェーン応答プロトコルと要求モードを反映します。

  • ヘッダーに ACKRQD が設定された受信データ メッセージは、RQD 要求を生成します。

  • ヘッダーに ACKRQD が設定されていない受信データ メッセージでは、チェーン応答プロトコルに応じて RQE または RQN 要求が生成されます。

  • アプリケーションでは、エンド チェーン インジケーター (ECI) アプリケーション フラグが設定されているデータ メッセージに対してのみ ACKRQD を設定する必要があります。

  • セカンダリが即時要求モードを使用することをセッションで指定した場合、アプリケーションは、ACKRQD が設定されたデータを送信した後も、そのデータ メッセージの Status-Acknowledge メッセージを受信していない場合でも、さらにデータ メッセージを送信できます。 メッセージはローカル ノード内でキューに登録され、肯定的な応答が受信されると徐々に送信されます。

  • セッションでセカンダリが遅延要求モードを使用することを指定した場合、ACKRQD が設定されたデータ メッセージを送信した後、アプリケーションは引き続きデータ メッセージを送信できます。

    アプリケーションがデータ メッセージのメッセージ ヘッダーに ACKRQD フィールドを設定する場合は、このデータ メッセージに対する受信確認が必要であることを示します。 ローカル ノードは、同じ接続上のアプリケーションに Status-Acknowledge メッセージを送信し、データ メッセージと同じメッセージ キーを使用して、受信データ メッセージを確認します。 (図については、このトピックの最後にある最初の図を参照してください)。

    ローカル ノードは、内部状態コンピューターを介してアプリケーションからの受信 データ メッセージを処理し、このフローの正しい SNA シーケンス番号または識別子を割り当て、要求のデータをホストに送信します。 要求のチェーン応答の種類は、 ACKRQDデータ メッセージとセッション パラメーターで設定されたかどうかによって異なります。

    ローカル ノードは、ホストからの肯定的な応答を Status-Acknowledge(Ack) にアプリケーションにマップします。 アプリケーションでは、Status-Acknowledge のメッセージ キーを使用して 、受信確認 を元の データ メッセージと関連付けることができます。 そのため、特定のデータ メッセージに対する Status-Acknowledge(Ack) の受信は、ローカル ノードがホストから受信 SNA 要求への正の SNA 応答を受信したことを意味します。 (図については、このトピックの最後にある 2 番目の図を参照してください)。

    応答は、SSCP-PU セッションで吸収されることに注意してください。

    送信 Status-Acknowledge(Ack) メッセージには、アプリケーション フラグとシーケンス番号が含まれていることに注意してください。 アプリケーション フラグは、応答の RH インジケーターを反映します。 シーケンス番号は応答からの SNA シーケンス番号であり、伝送サービス・プロファイル (TS プロファイル) 4 を使用してアプリケーションが作業単位に対応する SNA 2 次シーケンス番号を追跡するためのメカニズムを提供します。

    ローカル ノードは、ホストからの否定応答を Status-Acknowledge(Nack-1) メッセージにアプリケーションにマップします。 アプリケーションでは、 Status-Acknowledge のメッセージ キーを使用して、否定受信確認を元の データ メッセージと関連付けることができます。 送信 Status-Acknowledge(Nack-1) メッセージには、否定応答からの SNA センス コードとシーケンス番号が含まれています。 (図については、このトピックの最後にある 3 番目と 4 番目の図を参照してください)。

    ローカル ノードが受信 データ メッセージの形式でエラーを検出した場合、または データ メッセージがセッションの現在の状態に適していない場合は、エラー コードを含むアプリケーションに Status-Acknowledge(Nack-2) を送信します。 (エラー コードの一覧については、「 エラー コードとセンス コード」を参照してください)。ローカル ノードは、エラーの データ メッセージに対応する要求をホストに送信せず、セッションの SNA シーケンス番号を進めません。 アプリケーションは、次の受信 データ メッセージで任意のメッセージ キーを使用できます (エラーによって重大なエラーが発生しない場合)。

    アプリケーションが ACKRQD を使用してデータ メッセージを送信し、アプリケーション フラグに ECI を含まない重大なチェーン エラーの例を、このトピックの最後の図に示します。 この特定のエラーを検出した後、ローカル ノードはアプリケーションの接続を重大に失敗としてマークし、接続を閉じて、UNBIND を引き出す TERM-SELF 要求を SSCP に送信することに注意してください。 (詳細については、「 回復」を参照してください)。

    迅速なフロー要求の生成の原因となる受信 状態制御 メッセージは、いつでも送信でき、受信 データ メッセージへの肯定受信確認または否定受信確認の送信には影響しません。 SNA の優先フロー要求に対応する Status-Control メッセージの詳細については、「 Status-Control メッセージ」を参照してください。

    次の 5 つの図は、さまざまなチェーン応答の種類とセカンダリ セッション要求モードの受信データ受信確認プロトコル (および基になる SNA プロトコル) の例を示しています。

    次の図を示します。

  • データ メッセージの ACKRQD フィールド。

  • データ メッセージのメッセージ キー。

  • データ メッセージに関連するアプリケーション フラグ。

  • データ メッセージのエラー コード ("ERROR=..."" と表示されます)。

  • SNA 要求/応答に関連する RH フラグ。

  • SNA 要求/応答のシーケンス番号。

  • SNA 要求/応答のセンス コード ("SENSE=...."" と表示されます)。

    わかりやすくするために、すべてのメッセージは同じ PLU セッションで流れていると見なされます。

    次の図では、アプリケーションは正常に データ メッセージを送信します。

    アプリケーションがデータ メッセージを正常に送信する方法を示す画像。
    アプリケーションがデータ メッセージを正常に送信する

    次の図では、アプリケーションは 正常にデータ メッセージのチェーンを送信します。

    アプリケーションがデータ メッセージのチェーンを正常に送信する方法を示す画像。
    アプリケーションがデータ メッセージのチェーンを正常に送信する

    次の図では、ホストは データ メッセージのチェーンを拒否します。

    ホストがデータ メッセージのチェーンを拒否する方法を示す画像。
    ホストがデータ メッセージのチェーンを拒否する

    次の図では、ホストは最初の明確な応答チェーンを拒否し、遅延要求セッションで 3 番目の例外応答チェーンを拒否します。 3 番目のチェーンに対する負の応答は、2 番目のチェーンに対する肯定的な応答を意味します。

    ホストが最初の明確な応答チェーンを拒否する方法を示す画像。
    ホストが最初の明確な応答チェーンを拒否する

    次の図では、ローカル ノードは、データ メッセージに対する ECI アプリケーション フラグなしで、アプリケーションによる ACKRQD の無効な使用を検出します。 ホストにデータが送信されない点に注意してください。 ただし、エラーは重大であるため、ローカル ノードは TERM-SELF メッセージを SSCP に送信します。

    ローカル ノードが、データ メッセージに対する ECI アプリケーション フラグなしで ACKRDQ のアプリケーションの無効な使用を検出する方法を示す図。
    ローカル ノードは、データ メッセージに対する ECI アプリケーション フラグなしで、アプリケーションによる ACKRDQ の無効な使用を検出します

こちらもご覧ください

送信データ
LUA アプリケーションからの受信データ