Eine ferne IMS-Transaktion vom EGL-generierten Java-Code oder vom Debugger aufrufen

Ein von EGL-generiertes Java™-Programm oder der Debugger können eine nicht interaktive IMS-Transaktion mit einem Segment über IMS Connect aufrufen. Sie müssen einen separaten Eingabe- und Ausgabedatensatz übergeben. Jeder dieser Datensätze enthält Details zu IMS und Sie müssen den Verbindungsabschnitt korrekt festlegen.

Details zu verschiedenen Varianten des IMS-Zugriffs finden Sie in "Ein fernes IMS-Programm vom EGL-generierten Java-Code oder vom Debugger aufrufen."

EGL-Code schreiben

Die Codierungstask besteht darin, einen Eingabe- und Ausgabedatensatz zu definieren und eine "call"-Anweisung zu schreiben, die diese Datensätze enthält. Der Eingabedatensatz muss der Nachricht entsprechen, die von der IMS-Transaktion beim Empfang von der IMS-Nachrichtenwarteschlange erwartet wird. Der Ausgabedatensatz muss der Nachricht entsprechen, die die IMS-Transaktion in die Nachrichtenwarteschlange einfügt. Beispiel: Beim folgenden Code wird die Transaktion TXN1 aufgerufen und stellt die IMS-Headerinformationen und die Daten bereit:
   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

Die Anweisung "call" und der Eingabedatensatz enthalten beide den Transaktionscode (wie dargestellt). Die Eingabe- und Ausgabedatensätze enthalten beide die IMS LL- und ZZ-Felder.

Im zweiten Beispiel erwartet die IMS-Transaktion TXN2 eine Eingabe in Form einer MFS-Zuordnung und antwortet auf das aufrufende Programm mit einer MFS-Zuordnung. Die Datensatzabschnitte lauten wie folgt:
   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

Die Datensätze enthalten die von MFS erforderlichen Daten (wie dargestellt).

Element "callLink" im Verbindungsoptionsabschnitt festlegen

Die Erstellungsdeskriptoroption "linkage" muss auf einen Verbindungsoptionsabschnitt verweisen, der das Element "callLink" für die aufgerufene Transaktion enthält. Gehen Sie wie folgt vor, wenn Sie mit dem Element "callLink" arbeiten:
  • Legen Sie "type" auf REMOTECALL fest.
  • Legen Sie "remotePgmType" auf STATELESS fest.
  • Legen Sie "remoteComType" auf IMSTCP der IMSJ2C fest.
  • Legen Sie "conversionTable", "location" und "serverID" für die Einstellung "remoteComType" entsprechend fest, wie in den Referenzabschnitten zu diesen Attributen beschrieben.

Laufzeit und IMS-Terminierungsdetails verstehen

Der Prozess lautet zur Ausführungszeit wie folgt:
  1. Der EGL-generierte Java-Code erstellt eine IMS-Interaktion und ruft die Ausführungsmethode für diese Interaktion auf, indem die Eingabe- und Ausgabedatensätze übergeben werden.
  2. IMS Connect stellt die Eingabedaten für die IMS-Nachrichtenwarteschlange bereit und die IMS-Transaktion ruft sie auf, indem ein GU-Aufruf an den Eingabe-/Ausgabe-PCB ausgegeben wird.
  3. Nach dem Verarbeiten der Eingabedaten fügt die IMS-Transaktion die Ausgabedaten der Nachrichtenwarteschlange hinzu, indem ein ISRT-Aufruf an den Eingabe-/Ausgabe-PCB ausgegeben wird.
  4. IMS Connect gibt die Ausgabedaten an die Ausführungsmethode zurück, die wiederum die Daten an das aufrufende Programm zurückgibt.

Weitere Informationen darüber, wie IMS Connect mit dem Java-Code und mit der IMS-Transaktion interagiert, finden Sie in der IMS Connect-Dokumentation.

Der EGL-generierte Java-Aufruf benötigt keine Änderungen am vorhandenen IMS-PSB oder an den Makros APPLCTN und TRANSACT in der IMS-Generierung der Stufe 1.


Feedback