LPI アドレス

LPI アドレスは、接続の両端を識別するために使用されます。 次の一覧で説明するように、ローカリティ (L)、パートナー (P)、インデックス (I) という 3 つのコンポーネントがあります。

  • ローカリティは、システム内でのローカリティを一意に識別する 1 バイトの識別子です。 このローカリティは、SNA サービス コンポーネント (ローカル ノード、リンク サービス、3270 エミュレーターなど) に対応します。

  • パートナーは、ローカリティ内のパートナーを一意に識別する 1 バイトの識別子です。 これは常に使用されるわけではなく、コンポーネントの一部を区別するために使用することができます (たとえば、拡張プログラム間通信機能 (APPC) 関数ではなく、ローカル ノードの 3270 関数など)。

  • インデックスは、パートナー内の論理エンティティを一意に識別する 2 バイトの識別子です。 このフィールドの意味と使い方は、通信パートナーによって定義されます。 これは同一パートナー間の複数の接続を区別するために使用されます (たとえば、ローカル ノードと特定の 3270 エミュレーター間の多数ある 3270 セッションの 1 つを識別するため)。 インデックス値として 0 の値は使用できません。 ノードとのアクティブな LPI 接続ごとにアプリケーションが一意のインデックス値を割り当てる必要があります。

    接続を介して流れるメッセージには、メッセージのソースと宛先を識別する 2 つの LPI があります。 これが、メッセージのソース LPI と宛先 LPI です。 2 つのセットで、メッセージが流れる接続を識別します。

    パートナーの任意のペア間に複数の接続が存在する可能性があります。 次に、I 値を使用して接続が識別されます。 たとえば、ローカル ノードと 3270 エミュレーターの間の通信の場合、L 値と P 値によってメッセージがそのローカル ノードの 3270 データとして識別され、I 値によってそのデータの接続の目的が示されます。

    接続の作成」で説明されているように、LPI は、接続が開かれたときにパートナーと DMOD の組み合わせによって割り当てられます。

    コンポーネントごとに動的に割り当てられるので、L 値はシステム全体で重複しません。 たとえば、ローカル 2.1 ノードのローカリティは 1 つの 3270 ローカリティに対してはローカリティ 4 として、2 つ目の 3270 ローカリティに対してはローカリティ 6 として認識されます。 ただし、任意のローカリティの観点からは、パスが存在するリモートの場所ごとに一意の L 値が存在することになります。 この L 値は、そのローカリティへのパスを識別する内部テーブルのインデックスとして使用されます。

    次の図は、「パスと DMOD」に示されているコンポーネント間で使用される可能性がある L 値の例と、コンポーネント間で流れるメッセージのローカル ノードで使用される LPI 値の例を示しています (LPI 値の割り当てと使用方法については、「PLU 接続を開く」を参照してください)。

    L 値の例を示す画像。
    L 値の例

    L 値の例

    ローカル ノードと 3270 B の間のメッセージで指定された L 値を示す画像。
    ローカル ノードと 3270 B の間のメッセージに指定された L 値

    ローカル ノードと 3270 B の間のメッセージに指定された L 値

    ローカル ノードと 3270 A の間の 2 つの異なる接続でフローするメッセージで指定された LPI 値を示す画像。
    ローカル ノードと 3270 A の間 2 種類の接続で送信されるメッセージに指定された LPI 値

    ローカル ノードと 3270 A の間 2 種類の接続で送信されるメッセージに指定された LPI 値

    ベースは、メッセージを送信するコードの任意の部分によって呼び出されます。 メッセージの送信先の L 値を使用して、メッセージの送信先が決定されます。 メッセージがリモートのローカリティに到達すると、そのローカリティのベースにより、そのローカリティに複数のパートナーが含まれている場合に適切なパートナーにルーティングされます。