EGL 生成の Java コードまたはデバッガーからのリモート IMS トランザクションの呼び出し

EGL 生成の Java™ プログラムまたはデバッガーは、IMS™ Connect を介して、非会話型の単一セグメントの IMS トランザクションを呼び出すことができます。入力レコードと出力レコードを別々に渡し、それぞれに IMS に固有の詳細を含め、リンケージ・パーツを適切に設定する必要があります。

IMS アクセスのさまざまなバリエーションの詳細については、『EGL 生成の Java コードまたはデバッガーからのリモート IMS プログラムの呼び出し』を参照してください。

EGL コードの作成

コーディング・タスクは、入出力レコードを定義し、それらのレコードを含む call ステートメントを作成することです。入力レコードは、IMS トランザクションが IMS メッセージ・キューから取得することを予期しているメッセージに一致する必要があります。また、出力レコードは、IMS トランザクションがメッセージ・キューに挿入するメッセージに一致する必要があります。例えば、次のコードは、トランザクション TXN1 を呼び出し、IMS ヘッダー情報とデータの両方を提供します。
   inRec InputRecord;
   outRec OutputRecord;

   inRec.TRANSCODE = "TXN1";
   call "TXN1"(inRec, outRec);

   record InputRecord type BasicRecord
      10 LL smallInt;         // IMS LL field
      10 ZZ smallInt;         // IMS ZZ field
      10 TRANSCODE char(8);   // IMS transaction code
      10 data;                // user data
         15 f1 char(10);
         15 f2 char(20);
   end

   record OutputRecord type BasicRecord
      10 LL smallInt;         // IMS LL field
      10 ZZ smallInt;         // IMS ZZ field
      10 data;                // user data
         15 f2 char(20);
         15 f3 char(20);
         15 f4 char(20);
   end

示されているように、call ステートメントと入力レコードにはそれぞれトランザクション・コードが含まれており、入力レコードと出力レコードにはそれぞれ IMS LL フィールドと ZZ フィールドが含まれています。

2 番目の例では、IMS トランザクション TXN2 は MFS マップ形式の入力を予期しており、MFS マップを使用して呼び出し側に応答します。以下に、レコード・パーツを示します。
   record InputRecord type BasicRecord
      10 LL smallInt;                   // IMS LL field
      10 ZZ smallInt;                   // IMS ZZ field
      10 MID-TRANSCODE char(8);         // IMS transaction code
      10 ...                            // Other MFS MOD header data
      10 data;                          // user data
         15 field1Attribute char(8);
         15 field1Data... 
   end

   record OutputRecord type BasicRecord
      10 LL smallInt;                   // IMS LL field
      10 ZZ smallInt;                   // IMS ZZ field
      10 ...                            // other MFS MOD header data
      10 data;                          // user data
         15 field1Attribute char(8);    // account for MFS attribute bytes
         15 field1Data...
   end

示されているように、レコードには MFS が必要とするデータが含まれています。

リンケージ・オプション・パーツでの callLink 要素の設定

linkage ビルド記述子オプションは、呼び出し側トランザクションに対する callLink 要素を含むリンケージ・オプション・パーツを参照する必要があります。callLink 要素を処理するときは、次のようにします。
  • type セットを REMOTECALL に設定します。
  • remotePgmType セットを STATELESS に設定します。
  • remoteComType セットを IMSTCP または IMSJ2C に設定します。
  • 属性の参照トピックで説明されているように、conversionTablelocation、および serverID を、必要に応じて remoteComType 設定用に設定します。

ランタイムおよび IMS プランニングについて

実行時に、処理は次のようになります。
  1. EGL 生成の Java コードが、IMS 対話を作成し、その対話に対して execute メソッドを呼び出し、入力レコードと出力レコードを渡します。
  2. IMS Connect は IMS メッセージ・キューに対する入力データを提供し、IMS トランザクションは I/O PCB に対して GU 呼び出しを発行することによりそのデータを取得します。
  3. 入力データを処理した後で、IMS トランザクションは I/O PCB に対して ISRT 呼び出しを発行することにより出力データをメッセージ・キューに挿入します。
  4. IMS Connect は出力データを execute メソッドに戻し、そのメソッドがデータを呼び出し側に戻します。

IMS Connect が Java コードおよび IMS トランザクションと対話する方法の詳細については、IMS Connect の資料を参照してください。

EGL 生成の Java 呼び出しでは、既存の IMS PSB に対する変更、または IMS ステージ 1 生成の APPLCTN マクロおよび TRANSACT マクロに対する変更は不要です。


フィードバック