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 に設定します。
- 属性の参照トピックで説明されているように、conversionTable、location、および serverID を、必要に応じて remoteComType 設定用に設定します。
ランタイムおよび IMS プランニングについて
実行時に、処理は次のようになります。
- EGL 生成の Java コードが、IMS 対話を作成し、その対話に対して execute メソッドを呼び出し、入力レコードと出力レコードを渡します。
- IMS Connect は IMS メッセージ・キューに対する入力データを提供し、IMS トランザクションは I/O PCB に対して GU 呼び出しを発行することによりそのデータを取得します。
- 入力データを処理した後で、IMS トランザクションは I/O PCB に対して ISRT 呼び出しを発行することにより出力データをメッセージ・キューに挿入します。
- IMS Connect は出力データを execute メソッドに戻し、そのメソッドがデータを呼び出し側に戻します。
IMS Connect が Java コードおよび IMS トランザクションと対話する方法の詳細については、IMS Connect の資料を参照してください。
EGL 生成の Java 呼び出しでは、既存の IMS PSB に対する変更、または IMS ステージ 1 生成の APPLCTN マクロおよび TRANSACT マクロに対する変更は不要です。