![[z/OS]](../images/ngzos.gif)
OTMA を介した最適化されたローカル・アダプターを使用した、既存の IMS トランザクションの呼び出し
メッセージ処理プログラム (MPP) またはファスト・パス・プログラム (IFP) として実行する、既存の未変更の IMS™ トランザクションは、 WebSphere® Application Server for z/OS® の最適化されたローカル・アダプターを使用して、Open Transaction Manager Access 呼び出し可能インターフェース (OTMA C/I) サポートを介して使用することで、呼び出すことができます。 このサポートは、IMS OTMA C/I を使用する最適化されたローカル・アダプターで導入されている、一連の新しいネイティブ・モジュールによって提供されます。
WebSphere Application Server for z/OS にデプロイされていて、既存の IMS トランザクションを呼び出す必要のあるアプリケーションは、ola.rar ファイルを使用して OTMA C/I インターフェース・モジュールに到達します。アプリケーションが、ターゲットの IMS システムの名前、および関連付けられている OTMA XCF 情報を提供できるようにする、複数の新規接続ファクトリー属性があります。また、アプリケーションが、交換用に使用される同期レベルを設定できるようにするための追加属性もあります。これらのパラメーターについて詳しくは、トピック『最適化ローカル・アダプターの接続ファクトリーに関する考慮事項』を参照してください。
IMS グローバル・トランザクションは、バージョン 8.5.0.2 以降でサポートされています。グローバル・トランザクションで、OTMA を介した WOLA サポートを使用して既存の IMS アプリケーションを呼び出すコミット・コーディネーターとして WebSphere Application Server を使用して実行されるアプリケーションは、同じグローバル・トランザクション・コンテキスト内に IMS トランザクションを含むことができます。
このサポートについて詳しくは、セクション『グローバル・トランザクション - IMS アプリケーションを呼び出す Websphere アプリケーション』を参照してください。
メッセージ・フォーマットの要件
バージョン 8 では複数セグメント・メッセージがサポートされるようになりましたが、それより前のバージョンでは、要求および応答メッセージは、最大送受信セグメント・サイズがメッセージ・ヘッダーも含めて 32760 バイト以下の、単一セグメントにする必要があります。
<----------------- HEADER ----------------> <------ DATA ------>
LL + ZZ + IMS Transaction Name + Message request data
(2 bytes) | (2 bytes) | (8 bytes) | (up to 32744 bytes)
メッセージ中の Transaction Name は OTMA C/I への呼び出しに使用され、IMS の MPR またはファスト・パス従属領域で定義され、到達可能なトランザクションである必要があります。
<----- HEADER -----> <------------------ DATA ----------------->
LLLL + Message response data
(4 bytes) | (up to 32756 bytes)
Rational® Application Developer の CICS/IMS Java™ データ・バインディング・ウィザードは、Java オブジェクトとバイナリー形式との間のデータのマッピングを処理するために使用できる setter および getter メソッドを持つヘルパー・クラスの作成に使用されます。
このデータのマッピングは、WebSphere Application
Server から IMS に送信されたメッセージと応答データの両方に適用されます。複数セグメント・メッセージのサポート
IMS 複数セグメント・メッセージでは、要求および応答メッセージが、それぞれ前のバージョンの 32744 バイトおよび 32756 バイトより大きくなるようにサポートされています。ただし、単一セグメントは、メッセージ・ヘッダーを含めて 32768 バイト以下にする必要があります。
- OTMAMaxSegments
OTMAMaxSegments は、現在の接続での IMS メッセージの送受信でサポートされるセグメントの最大数を表します。値が指定されていない場合、デフォルトは 1 になります。
- OTMAMaxRecvSize
OTMAMaxRecvSize は、OTMA でサポートされる WebSphere の最適化されたローカル・アダプターを使用して IMS から返されるうち、最大のメッセージを表します。値が指定されていない場合、デフォルトは 32768 になります。
グローバル・トランザクション - IMS アプリケーションを呼び出す Websphere アプリケーション
- アプリケーションは、OTMA を使用するように構成された接続を使用するように構成され、RRSTransactional 管理接続ファクトリー属性が True (または 1) に設定されている。RRSTransactional 属性を True (または 1) に設定すると、接続に RRS トランザクションが使用可能になります。
- WebSphere Application Server for z/OS サーバーが、ola_rrs_context_propagate_otma 環境変数がインストールされ、True (または 1) に設定された状態で稼働中である。
- IMS 環境が、RRS=YES が構成された状態で稼働中である。
これらの構成設定のいずれを実装する場合でも、WebSphere Application Server を使用してグローバル・トランザクションで実行されるアプリケーションのトランザクション・コンテキストが、IMS で実行されるアプリケーションに合わせて調整される前に、WebSphere Application Server for z/OS サーバーおよび IMS 環境を再始動する必要があります。
複数セグメント・メッセージのメッセージ・フォーマット要件
複数セグメント・メッセージでは、WebSphere の最適化されたローカル・アダプターから IMS に要求する場合のデフォルトは LLZZ です。IMS から WebSphere Application Server への応答用のデフォルトの LLLL+message データには変更はありません。
このサポートには、これらのデフォルトを変更できるメソッドが提供されています。setOTMARequestLLZZ() および setOTMARequestLLLL() メソッドでは、WebSphere Application Server から IMS へのメッセージ要求の長さ接頭部のスタイルを設定できます。メソッド、setOTMAResponseLLZZ() および setOTMAResponseLLLL() では、メッセージ応答に関して、メッセージ接頭語のスタイルを LLZZ または LLLL に設定できます。以下の例は、WebSphere Application Server のアプリケーションから IMS への呼び出しとして想定されているメッセージ・フォーマットです。
<----------------- HEADER ------------------>
LL + ZZ + IMS Transaction Name +
(2 bytes) | (2 bytes) | (8 bytes)
<-------------------------- DATA SEGMENT 1 ---------------------->
Message segment 1 data
(up to 32756 bytes)
<-------------------------- DATA SEGMENT 2 ---------------------->
+ LL + ZZ + Message segment 1 data
(2 bytes) | (2 bytes) | (up to 32764 bytes)
…
<-------------------------- DATA SEGMENT N ---------------------->
+ LL + ZZ + Message segment N data
(2 bytes) | (2 bytes) | (up to 32764 bytes)
<----------------- HEADER ------------------>
LLLLZZ + IMS Transaction Name +
(6 bytes) | (8 bytes)
<-------------------------- DATA SEGMENT 1 ---------------------->
Message segment 1 data
(up to 32754 bytes)
<-------------------------- DATA SEGMENT 2 ---------------------->
+ LLLLZZ + Message segment 1 data
(6 bytes) | (up to 32762 bytes)
…
<-------------------------- DATA SEGMENT N ---------------------->
+ LLLLZZ + Message segment 1 data
(6 bytes) | (up to 32762 bytes)
<----- HEADER -----> <----------- DATA SEGMENY 1 ------------>
+ LL + ZZ + Message segment 1 data
(2 bytes) | (2 bytes) | (up to 32764 bytes)
<-------------------------- DATA SEGMENT 2 ---------------------->
+ LL + ZZ + Message segment 2 data
(2 bytes) | (2 bytes) | (up to 32764 bytes)
…
<-------------------------- DATA SEGMENT N ---------------------->
+ LL + ZZ + Message segment N data
(2 bytes) | (2 bytes) | (up to 32764 bytes)
-- HEADER --> <----------- DATA SEGMENT 1 ------------>
+ LLLLZZ + Message segment 1 data
(6 bytes) | (up to 32762 bytes)
<-------------------------- DATA SEGMENT 2 ---------------------->
+ LLLLZZ + Message segment 2 data
(6 bytes) | (up to 32762 bytes)
…
<-------------------------- DATA SEGMENT N ---------------------->
+ LLLLZZ + Message segment N data
(6 bytes) | (up to 32762 bytes)