BIND のチェック

Open(PLU) OK Response には接続情報制御ブロック (CICB) が含まれ、それをアプリケーションで使用して接続の特定の特性をカスタマイズすることができます。また、それには BIND の検証に使用される情報が含まれます。 ローカル ノードにより、Open(PLU) OK Response に含まれる BIND パラメーターが検証されることに注意してください。 ホストからの元の BIND の要求/応答ユニット (RU) のコピーが保持されることはありません。 BIND がネゴシエート可能な場合は、アプリケーションで BIND の RU のパラメーターを変更できますが、ネゴシエート不可能な場合は、アプリケーションから BIND の RU を変更せずに返す必要があります。 ネゴシエート可能な BIND フラグは、Open(PLU) Request で提供されます。

PLU セッションの多くの特性は BIND パラメーターによって決定されますが、アプリケーションで CICB 内のフィールドを指定することにより特定の特性を選択できます。 詳細については、後の表を参照してください。 CICB の使用方法と、さまざまな CICB オプションの選択による PLU セッションへの影響の詳細については、チェーンやペーシングなどの PLU セッションの特性に関するこのセクションのトピックで、コンテキストに応じて説明されています。

BIND は、BIND チェック テーブル エントリを使用して検証されます (インデックスは CICB で指定されています)。 このエントリは、BIND のさまざまなフィールドに対応しています。 BIND チェック テーブルのエントリは、構成ファイルに格納されます。 たとえば、BIND チェック テーブル エントリでは、セカンダリ チェーン応答プロトコルが "明確な応答" または "明確または例外応答" (バイト 5 のビット 2 および 3 = B10 または B11) の場合に、BIND が受け入れられるように指定できます。 これは、アプリケーションで要求例外 (RQE) チェーンを送信したくない場合に適しています。

次の表では、接続情報制御ブロックの使用方法を示します。

フィールド 説明
セグメント配信オプション 値 0x00 は、ローカル ノードにおいて送信セグメントの組み立てを実行し、完全な RU のみを配信する必要があることを示します。 値 0x01 は、ローカル ノードによって RU のセグメントが配信されるのをアプリケーションが望んでいることを示します。 詳細については、「セグメントの配信」を参照してください。
アプリケーション ペーシング オプション 値 0x00 は、ペーシングの処理がローカル ノードによって行われるのをアプリケーションが要求していることを示します。 値 0x01 は、アプリケーションが Status-Resource メッセージを介して送信のペーシングに関わる必要があることを示します。 詳細については、「ペーシングとチャンキング」を参照してください。
アプリケーション キャンセル オプション 値 0x00 は、ローカル ノードによって CANCEL が自動的に生成される必要があることを示します。 値 0x01 は、アプリケーションで CANCEL を生成することを示します。 詳細については、「受信チェーン」を参照してください。
アプリケーション トランザクション番号オプション 値 0x00 は、アプリケーションでトランザクション番号がサポートされていないことを示します。 値 0x01 は、アプリケーションでトランザクション番号がサポートされていることを示します。 詳細については、「回復」を参照してください。
BIND チェック インデックス BIND パラメーターを検証する必要がある対象の BIND チェック テーブル エントリのインデックスを指定します。 次のいずれかの値を使用する必要があります。

- 0x01 —3270 プリンター セッション
- 0x02 —3270 ディスプレイ セッション
- 0x10 —LUA (LU タイプ 0) アプリケーション

ローカル ノードからアプリケーションへの Open(PLU) Confirm では、BIND 検証が成功したかどうかが示されており、成功した場合は、バインド情報制御ブロック (BICB) が提供されます。 BICB には、高レベルの言語に適した形式でセッション BIND パラメーターがまとめられており、PLU セッションの特性が効果的に定義されています。 BIND をネゴシエートしないアプリケーションでは、通常、Open(PLU) RequestBIND を調べる必要はなく、Open(PLU) OK Confirmの BICB を使用する必要があります。

次の表は、BICB 内のフィールドと、BIND RU のパラメーターに対するそれらの対応をまとめたものです。 詳細については、システム ネットワーク アーキテクチャ: 形式に関する IBM のマニュアル (GA27-3136) を参照してください。

Open(PLU) OK Confirm での位置 BIND RU での位置 [バイト, ビット] [説明]
dataru[0] [ 2, ] 機能管理 (FM) プロファイル
dataru[1] [ 3, ] 転送サービス プロファイル
dataru[2] [ 4, 0] プライマリ チェーン使用
dataru[3] [ 4, 1] プライマリ要求制御モード
dataru[4] [ 4,2-3] プライマリ チェーン応答プロトコル
dataru[5] [ 4, 4] プライマリ 2 フェーズ コミット
dataru[6] [ 4, 6] プライマリ圧縮インジケーター
dataru[7] [ 4, 7] プライマリ ブラケット終了 (EB) 送信インジケーター
dataru[8] [ 5, 0] セカンダリ チェーン使用
dataru[9] [ 5, 1] セカンダリ要求制御モード
dataru[10] [ 5,2-3] セカンダリ チェーン応答プロトコル
ataru[11]** [ 5, 4] セカンダリ 2 フェーズ コミット
dataru[12] [ 5, 6] セカンダリ圧縮インジケーター
dataru[13] [ 5, 7] セカンダリ EB 送信インジケーター
dataru[14] [ 6, 1] FM ヘッダー使用
dataru[15] [ 6, 2] ブラケット使用 1
dataru[16] [ 6, 2] ブラケット リセット状態 2
dataru[17] [ 6, 3] ブラケット終了規則
dataru[18] [ 6, 4] 代替コード セット インジケーター
dataru[19] [ 6, 5] シーケンス番号可用性
dataru[20] [ 7,0-1] 通常フロー送信/受信モード
dataru[21] [ 7, 7] 半二重フリップフロップ リセット
dataru[22] [ 8,2-7] セカンダリ ペーシング送信ウィンドウ
ataru[23]** [ 9,2-7] セカンダリ ペーシング受信ウィンドウ
dataru[24-25]\* [10, ] セカンダリ送信最大要求ユニット サイズ
dataru[26-27]\* [11, ] プライマリ送信最大要求ユニット サイズ
dataru[28] [14,1-7] LU-LU セッション タイプ
dataru[29] [27, ] PLU 名前サイズ
dataru[30-37] [28, ] 拡張 2 進化 10 進交換コード (EBCDIC) での PLU 名
dataru[38] [15,0-3] セッション タイプ 1: PS 機能管理ヘッダー (FMH) タイプ
dataru[39] [15,4-7] PS データ ストリーム プロファイル
dataru[40] [16, 0] 未処理の宛先の数
dataru[41] [16, 1] 圧縮データ インジケーター
ataru[42]** [16, 2] 周辺機器情報レコード (PDIR) 許可インジケーター
dataru[43] [15, 0] セッション タイプ 2 または 3: クエリ サポート
dataru[44] [24,1-7] 動的画面サイズ
dataru[45] [20, ] 基本行サイズ
dataru[46] [21, ] 基本列サイズ
dataru[47] [22, ] 代替行サイズ
dataru[48] [23, ] 代替列サイズ

Note

10x00 = ブラケットは使用されません。 0x01 = ブラケットは使用されます。

Note

20x01 = ブラケット リセット状態は BETB (ブラケット間) です。 0x02 = ブラケット リセット状態は INB (ブラケット内) です。

Note

これらの値は INTEGER 型です (他はすべて CHAR 型です)。

PLU を開くシーケンスは、アプリケーションにより Open(PLU) Error Response と適切なセンス コードを送信することで Open(PLU) Request が拒否された場合 (たとえば、BIND パラメーターがネゴシエート不可能な BIND で受け入れられない場合)、失敗する可能性があります。 指定されたセンス コードを含む BIND 要求に対し、ローカル ノードによって否定応答がホストに送信されます。 Open(PLU) Error Response の後で PLU 接続は閉じられているものと見なされ、ローカル ノードによって Open(PLU) Confirm は生成されません。 次の図では、アプリケーションによって Open(PLU) Request が拒否されたために (ネゴシエート不可能な BIND の) PLU 接続を開くことができない場合を示します。

PLU 接続プロセスを開く失敗を示す画像。
PLU 接続を開くことができない

  • PLU を開くシーケンスは、アプリケーションによって指定された BIND チェック テーブル エントリに対する BIND の検証が失敗した場合にも、失敗することがあります。 この場合、ローカル ノードでは次のことが行われます: BIND 要求に対する、適切なセンス コードが含まれる否定応答が、ホストに送信されます。

  • 1 番目のエラー コードにセンス コードの最初の単語が格納され、2 番目のエラー コードにエラーのある BIND パラメーターのインデックスが格納された Open(PLU) Error Confirm が、アプリケーションに送信されます。

    Open(PLU) Error Confirm の後、PLU 接続は閉じられているものと見なされます。 次の図は、BIND の検証が失敗したために PLU 接続を開くことができない場合を示したものです。 エラー コード 2 で、エラーのある BIND パラメーターの RU でのインデックスが提供されていることに注意してください。

    BIND 検証エラー プロセスによる PLU 接続を開く失敗を示す画像。
    BIND 検証エラーのために PLU 接続を開くことができない