出埠訊息的 IMS 訊息格式
當您使用 OTMA 將訊息從 Liberty 傳送至 IMS 時,zosLocalAdapters 特性必須將訊息從 IMS 格式轉換成 OTMA C/I 格式。 為了完成這種轉換,Liberty 必須知道要求和回應訊息區段是 LLZZ 還是 LLLLZZ 格式。
LLZZ 格式訊息區段以一個 2 位元組欄位開頭(內含區段長度),後面接著一個 2 位元組保留欄位。 區段的其餘部分由實際訊息使用。大部分 IMS 區段都使用這種格式。
LLLLZZ 格式訊息區段以一個 4 位元組欄位開頭(內含區段長度),後面接著一個 2 位元組保留欄位。 區段的其餘部分由實際訊息使用。某些 PL/I 程式使用 LLLLZZ 格式。
在 server.xml 中的 Connection Factory 定義上,您可以設定 OTMARequestLLZZ 和 OTMAResponseLLZZ 內容,以指定要求和回應的區段格式。 當您從 Connection Factory 取得連線時,您也可以使用 ConnectionSpecImpl 類別的方法來指定或置換區段格式。 如需在連線層次設定 LLZZ 欄位的詳細資訊,請參閱針對 com.ibm.websphere.ola.ConnectionSpecImpl 而產生的 Javadoc。
當您將多區段訊息傳送至 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'
所有訊息區段必須連結至單位元組陣列,並利用 IndexedRecord 傳遞至 IMS。類別 com.ibm.websphere.ola.IndexedRecordImpl 可讓您這樣做。 單位元組陣列必須新增至 IndexedRecord,並在您呼叫 Interaction.execute 時傳遞至 WOLA。 當互動傳回回應時會傳回 IndexedRecord,其中包含單位元組陣列中連結在一起的所有回應區段。 區段格式為 LLZZ 或 LLLLZZ,視 OTMAResponseLLZZ 內容的值而定。