IMS™ との間で送受信される各メッセージは、1 つ以上のセグメントから構成されています。 IMS メッセージは、しばしば複数のセグメントを含んでいます。
WebSphere® Message Broker および IMS プログラム間を流れるビット・ストリーム (伝送としても知られている) は、複数のセグメントを含むことができます。 各セグメントは、IMS ノードで説明しているように、LLZZ およびトランザクション・コード・フィールドから始まっています。 伝送は複数のメッセージを含むことができ、各々のメッセージは複数のセグメントを含みます。 IMS プログラムは、一度に 1 つのセグメントを取得し、通常はキュー上に出力データを一度に 1 つのセグメントずつ挿入します。 IMS プログラムは、次のメッセージの最初のセグメントを送信する前に、メッセージの最後を消去します。
入力メッセージの場合、各セグメントには LLZZ フィールドが含まれています。 最初のセグメントにのみ、トランザクション・コード (Trancode) フィールドが含まれています。 出力メッセージの場合、各セグメントには LLZZ フィールドが含まれています。 IMS プログラムは、一度に 1 つのセグメントを取得します。 GetUnique (GU) 呼び出しを行って、次のメッセージの最初のセグメントを読み取り、GetNext (GN) 呼び出しを行って、現行メッセージの次のセグメントを読み取ります。 IMS プログラムは、次の図に示されているように、通常はキューに出力データを一度に 1 つのセグメントずつ挿入し、次のメッセージの最初のセグメントを送信する前に、メッセージの最後を消去します。
IMS はプログラム出力を 1 つ以上のメッセージとして表し (通常は、入力メッセージごとに 1 つの出力メッセージ)、その各々が 1 つ以上のセグメントから構成されます。 IMSRequest ノードは、メッセージを単一の BLOB として表します。 メッセージをセグメントに構文解析し、Filter または Compute ノードを使用して応答の形状をテストし、ResetContentDescriptor ノードによってセグメントを構文解析し直す方法を判別できます。
出力に LL および ZZ 値を設定する必要があります。 LL 値は、4 バイトの LLZZ 接頭部を含むセグメント全体の長さです。 そのため、通常はメッセージ・フローに LL 値を計算するための ESQL 式が必要となります。 LLZZ フィールドは、ビッグ・エンディアン・エンコード方式 785 を使用する必要があります。