LUA に関する SNA の考慮事項

このセクションでは、論理ユニット アプリケーション (LUA) アプリケーションを記述するときに考慮する必要がある SNA 情報について説明します。

BIND チェック

LU セッションの初期化中に、ホストは LU セッションで使用する要求/応答ユニット (RU) サイズなどの情報を含む BIND メッセージを LUA アプリケーションに送信します。 Microsoft® Host Integration Serverは、RUI_READの LUA アプリケーションにこのメッセージ返します。 LUA アプリケーションは、BIND で指定されたパラメーターが適切であることを確認する必要があります。 アプリケーションには、次のオプションがあります。

  • BIND に対する OK 応答を含む RUI_WRITE を発行することで、BIND をそのまま受け入れることが可能です。 応答で追加の BIND データを送信することはできません。

  • 1 つ以上の BIND パラメーターのネゴシエートを試みることができます。 (BIND が交渉可能な場合にのみ許可されます)。これを行うには、OK 応答を含む 、変更された BIND をデータとして含RUI_WRITEアプリケーションで問題が発生します。

  • 適切な SNA センス コードをデータとして使用して、負の応答を含む RUI_WRITE を発行することで、BIND を拒否できます。

    BIND パラメーターを検証し、送信されたすべてのメッセージがそれらのメッセージと一致していることを確認することは、LUA アプリケーションの責任です。 ただし、次の 2 つの制限が適用されます。

  • Host Integration Serverは、BIND で指定されたサイズより大きい RU 長を指定するRUI_WRITEを拒否します。

  • Host Integration Server、セカンダリ LU が競合の勝者であり、エラー回復が競合の敗者の責任であることを BIND で指定する必要があります。

    注意

    SLI の場合、アプリケーションは BIND チェックを行う場合、 SLI_OPENSLI_BIND_ROUTINE を使用することを指定する必要があります。

表敬の確認

Host Integration Serverは、アプリケーションから送信された応答を適切な要求と関連付けるために、ホストから受信した要求の記録を保持します。 アプリケーションが応答を送信すると、Host Integration Serverは応答を元の要求のデータと関連付け、それに関連付けられているストレージを解放できます。

ホストが例外応答のみを指定する場合 (否定応答は送信できますが、肯定応答は送信できません)、アプリケーションが否定応答を送信した場合でも、Host Integration Serverは要求の記録を保持する必要があります。 アプリケーションが応答を送信しない場合、この要求に関連付けられているストレージを解放することはできません。

このため、Host Integration Serverにより、LUA アプリケーションはホストからの例外応答のみの要求に肯定的な応答を発行できます。 (これは、礼儀正しい受信確認と呼ばれます)。応答はホストに送信されませんが、LUA によって要求に関連付けられているストレージをクリアするために使用されます。

注意

アプリケーションは、例外応答のみの要求ごとに提供確認を送信する必要はありません。 効率を高める目的で、アプリケーションの応答頻度が低くなります。 ノードは、事前に保留中のすべての要求に対する暗黙的な受信確認として、提供確認を処理します。

SNA センス・コードを他の 2 次戻りコードと区別する

センス コードではない 2 番目の戻りコードには、最初の 2 バイトに常に 0 の値が含まれています。

SNA センス コードには、常に最初の 2 バイトに 0 以外の値が含まれます。 1 番目のバイトはセンス コード カテゴリを提供し、2 番目のバイトはそのカテゴリ内の特定のセンス コードを識別します。 (3 番目と 4 番目のバイトには追加情報を含めることができます。または 0 にすることもできます)。

SNA センス・コードに関する情報

返されたセンス コードに関する情報が必要な場合は、

否定応答と SNA センス・コード

SNA センス・コードは、次の場合に LUA アプリケーションに戻すことができます。

  • ホストが LUA アプリケーションからの要求に否定応答を送信すると、否定応答の理由を示す SNA センス コードが含まれます。 これは、後続のRUI_READでアプリケーションに報告されるか 次の情報 を含むSLI_RECEIVE に報告されます。

    センス コード 説明
    プライマリリターンコード LUA_OK。
    要求/応答インジケーター、応答の種類インジケーター、および検出データに含まれるインジケーター すべて 1 に設定され、センス データを含む負の応答を示します。
    返されるデータ SNA センス コード。
  • Host Integration Serverは、ホストから無効なデータを受信すると、通常はホストに否定応答を送信し、無効なデータを LUA アプリケーションに渡しません。 これは、後続のRUI_READ、SLI_RECEIVERUI_BID、またはSLI_BIDで、次の情報を使用してアプリケーションに報告されます。

    センス コード 説明
    プライマリリターンコード LUA_NEGATIVE_RESPONSE。
    2 次戻りコード ホストに送信される SNA センス コード。
  • 場合によっては、Host Integration Serverは、ホストによって提供されるデータが無効であることを検出しますが、送信する正しいセンス コードを特定できません。 この場合、例外要求 (EXR) 内の無効なデータが 、RUI_READ または SLI_RECEIVE の LUA アプリケーションに次の情報で渡されます。

    センス コード 説明
    要求/応答インジケーター 要求を示す 0 に設定します。
    センサー データに含まれるインジケーター センス データが含まれていることを示す 1 に設定します。 (このインジケーターは通常、応答にのみ使用されます)。
    メッセージ データ 推奨される SNA センス コード。

    その後、アプリケーションはメッセージに否定的な応答を送信する必要があります。 Host Integration Serverによって提案されたセンス コードを使用することも、センス コードを変更することもできます。

  • Host Integration Serverは、アプリケーションによって提供されたデータが無効であることを示すセンス コードをアプリケーションに送信できます。 これは、次の情報を 使用して、RUI_WRITE または SLI_SEND にアプリケーションに報告されます。

    センス コード 説明
    プライマリリターンコード LUA_UNSUCCESSFUL。
    2 次戻りコード SNA センス コード。

    LUA 動詞の 2 次戻りコードとして返すことができるセンス・コードは、WINLUA にリストされています。H ヘッダー ファイル。 このファイルについては、Host Integration Serverまたは SNA SDK を参照してください。

ペーシング

ペース設定は LUA インターフェイスによって処理されます。 LUA アプリケーションはペーシングを制御する必要はありません。また、ペーシング インジケーター フラグを設定しないでください。

(BIND によって決定される) LUA アプリケーションからホストに送信されるデータでペーシングが使用されている場合、 RUI_WRITE または SLI_SEND が完了するまでに時間がかかる場合があります。 これは、より多くのデータを送信する前に、LUA がホストからのペーシング応答を待機する必要があるためです。

LUA アプリケーションがホストまたはホスト (ファイル転送アプリケーションなど) から一方向に大量のデータを転送する場合、ホスト構成では、その方向にペーシングが使用されることを指定する必要があります。 これにより、データを受信するノードにデータがあふれず、データ ストレージが不足しないようにします。

チェーンの末尾へのデータの消去

ホストが LUA アプリケーションに要求ユニットのチェーンを送信するとき、アプリケーションは、チェーン内の最後の RU が受信されるまで待機してから応答を送信することも、チェーン内の最後ではない RU に否定応答を送信することもできます。 負の応答がチェーンの途中で送信された場合、LUA はこのチェーンから後続のすべての RU を消去し、アプリケーションに送信しません。

LUA は、チェーン内の最後の RU を受け取ると、 RUI_READ または RUI_BID の 1 次戻りコードを 0 個の 2 次戻りコードでLUA_NEGATIVE_RESPONSEに設定して、これをアプリケーションに示します。

ホストは、チェーンの途中で CANCEL などのメッセージを送信することで、チェーンを終了できます。 この場合、CANCEL メッセージは、RUI_READのアプリケーションに返されます。 LUA_NEGATIVE_RESPONSE戻りコードは使用されません。

セグメント化

RU のセグメント化は、LUA インターフェイスによって処理されます。 LUA は常に完全な RU をアプリケーションに渡し、アプリケーションは完全な RU を LUA に渡す必要があります。