アウトバウンド・メッセージの IMS メッセージ・フォーマット

OTMA を使用してメッセージを Liberty から IMS に送信した場合、zosLocalAdapters フィーチャーがメッセージを IMS フォーマットから OTMA C/I フォーマットに変換する必要があります。この変換を行うには、要求や応答のメッセージ・セグメントが LLZZ フォーマットなのか LLLLZZ フォーマットなのかを Liberty が認識している必要があります。

LLZZ フォーマットのメッセージ・セグメントは、セグメントの長さが含まれた 2 バイト・フィールドで始まり、その後に 2 バイトの予約済みフィールドが続きます。セグメントの残りの部分は、実際のメッセージで使用されます。ほとんどの IMS セグメントは、このフォーマットを使用します。

LLLLZZ フォーマットのメッセージ・セグメントは、セグメントの長さが含まれた 4 バイト・フィールドで始まり、その後に 2 バイトの予約済みフィールドが続きます。セグメントの残りの部分は、実際のメッセージで使用されます。LLLLZZ フォーマットは、一部の PL/I プログラムによって使用されます。

要求および応答のセグメント・フォーマットは、server.xml 内の接続ファクトリー定義で、OTMARequestLLZZ および OTMAResponseLLZZ プロパティーを設定することで指定できます。セグメント・フォーマットは、接続ファクトリーから接続を取得する際に ConnectionSpecImpl クラスのメソッドを使用して、指定またはオーバーライドすることもできます。com.ibm.websphere.ola.ConnectionSpecImpl に対して生成される Javadoc に、接続レベルでの LLZZ フィールドの設定に関する詳細が含まれています。

複数セグメント・メッセージを IMS に送信した場合、最初のメッセージ・セグメントには、ターゲット IMS トランザクションの 8 バイトの IMS トランザクション ID が含まれている必要があります。このトランザクション ID は、LLZZ 接頭部または LLLLZZ 接頭部の後に配置されます。後続のセグメントにトランザクション ID を含めてはなりません。単一セグメント・メッセージは、複数セグメント・メッセージの最初のセグメントと同じ方法で構成する必要があります。複数セグメント・メッセージは、以下のようになります。

2 bytes LL 20
2 bytes ZZ 00
8 bytes transaction ID    'MYTRAN01'
8 bytes data  'DATA0000'
2 bytes LL 12
2 bytes ZZ 00
8 bytes data  'DATA0001'
2 bytes LL 12
2 bytes ZZ  00
8 bytes data 'DATA0002'

すべてのメッセージ・セグメントを 1 バイト配列に連結し、IndexedRecord を使用して IMS に渡す必要があります。この目的のために、クラス com.ibm.websphere.ola.IndexedRecordImpl が用意されています。1 バイト配列を IndexedRecord に追加し、Interaction.execute の駆動時に WOLA に渡す必要があります。対話で応答が返される場合、IndexedRecord が返され、1 バイト配列内に連結されたすべての応答セグメントが入っています。セグメントのフォーマットは、OTMAResponseLLZZ プロパティーの値に応じて、LLZZ または LLLLZZ のいずれかです。


トピックのタイプを示すアイコン 参照トピック

ファイル名: rwlp_dat_imsoutmsg.html