LegStar modules for z/OS

In dieser Präsentation habe ich einen Integrationsservice für den Mule ESB beschrieben. Dieser Webservice (SOAP) baut ein Brücke zum Mainframe. Dazu verwende ich das Open Source Tool LegStar for Mule ESB, welches die Transformation der Daten für den Mainframe (EBCDIC) und den Aufruf des Mainframe COBOL CICS Programms übernimmt.

Download des Vortrags COBOL-CICS-LegStar-Mule-ESB (1054 KB)

Vorschaubild der Präsentation Mainframe-Zugriff via Java

Es kann etwas dauern bis die erste Folie angezeigt wird – die Präsentation muss erst geladen werden.

Die Navigation der Präsentation befindet sich unten rechts.

Der Quellcode und Download des Beispiels

Quellcode ansehen bei GitHub:
COBOL-CICS-LegStar-Mule-ESB

Download einer ZIP-Datei von GitHub:
COBOL-CICS-LegStar-Mule-ESB

Die Tipps

Transaktionen mit mehreren Copystrecken

Bei COMMAREA-basierten Mainframe Programmen, die mit mehreren Copystrecken aufgerufen werden (Hüllentransaktion), müssen die Copystrecken in der richtigen Reihenfolge in eine Copystrecke zusammen kopiert werden.

Die XSD-Schemas werden dann aus der zusammengesetzten Copystrecke generiert.

REPLACING

In COBOL können mit dem REPLACING Ausdruck einzelne Felder in der vordefinierten Copystrecke ersetzt werden (Pseudotextersetzung). Die Platzhalter :OWNER: müssen vor der Verarbeitung mit LegStar ersetzt werden, um ein brauchbares XSD-Schema zu erhalten.

        01 :OWNER:-RECORD.
          02 :OWNER:-NAME PIC X(40).
          02 :OWNER:-AGE  PIC 9(3).
          02 :OWNER:-ADDR PIC X(100).
          02 :OWNER:-ONLY PIC X VALUE "Y".

REDEFINES

Falls in der Copystrecke REDEFINES definiert werden, sollten die nicht benötigten Alternativen entfernt werden. In dem XSD-Schemas werden die REDEFINES mit dem Element <xs:choice /> dargestellt. Dadurch werden die Strukturen der JAXB Klassen undurchsichtig und unnötig verkompliziert — insbesondere schlägt die Transformation fehl, wenn mehrere Alternativen gleichzeitig verwendet werden.

        01 DFHCOMMAREA.
          05 DATEN.
            07 PERSON.
              10 ZUSTG             PIC X(04).
              10 ZUSTG-R   REDEFINES ZUSTG.
                 15 ZUSTG1         PIC X.
                 15 ZUSTG2         PIC X.
                 15 ZUSTG3         PIC X.
                 15 ZUSTG4         PIC X.

Mule und Maven

Wird die Mule-Application mit Apache Maven gebaut, so sind die Bibliotheken von LegStar und die abhängigen Bibliotheken nicht im Deployment-Artifact der Mule-Application enthalten. Standardmäßig werden vom Maven-Mule-Plugin die Bibliotheken mit der Group-Id org.mule.transports nicht dem Deployment-Artifact hinzugefügt.
Nun gibt es zwei Möglichkeiten:

  1. Die LegStar Bibliotheken der Installation hinzufügen
    Dazu muss die LegStar-Distribution (legstar-mule-transport-3.4.0-dist.jar) in das Verzeichnis ${MULE_HOME}/lib/user kopiert werden.
  2. Konfiguration des Maven-Mule-Plugins
    Mit folgender Konfiguration des Maven-Mule-Plugins fügt das Plugin die benötigten Bibliotheken dem Deployment-Artifact hinzu.
<build>
    <plugins>
        <plugin>
            <groupId>org.mule.tools</groupId>
            <artifactId>maven-mule-plugin</artifactId>
            <configuration>
                <!--
                    Alterntiv können die LegStar-Komponenten im Mule Server
                    installiert werden. So werden diese Bibliotheken und die
                    abhängigen Bibliotheken in der Mule-Anwendung platziert.
                -->
                <inclusions>
                    <inclusion>
                        <groupId>org.mule.transports</groupId>
                        <artifactId>legstar-mule-transport</artifactId>
                    </inclusion>
                </inclusions>
            </configuration>
        </plugin>
    </plugins>
</build>

Fehler in Eclipse Keine Generatoren gefunden

Wird das Build-Werkzeug Apache Maven für das Erzeugen von Eclipse-Projekten verwendet, kann es beim Generieren der LegStar Mule Mainframe Adapter zu folgendem Fehler kommen.

Hier wurde durch Apache Maven die Datei .classpath überschrieben und die folgenden Einträge entfernt:

<classpathentry kind="con" path="com.legstar.eclipse.mule.LIBRARY"/>
<classpathentry kind="con" path="com.legstar.eclipse.LIBRARY"/>

Dadurch findet das Plugin von LegStar die benötigten Java Bibliotheken nicht mehr.

Dieser Eintrag kann automatisch wieder rekonstruieren werden, wenn auf der Datei cobol-cics-legstar-mule-esb/src/main/cixs/bk010.cixs das Context Menü geöffnet wird und über den Menüpunkt Legstar -> Generate Mule Mainframe Adapter... der gewünschte Generator ausgewählt wird.

Eine weitere Möglichkeit ist, die Einträge durch Maven schreiben zulassen. Dazu muss in der pom.xml folgende Einträge hinzugefügt werden.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <classpathContainers>
                    <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>
                    <classpathContainer>com.legstar.eclipse.mule.LIBRARY</classpathContainer>
                    <classpathContainer>com.legstar.eclipse.LIBRARY</classpathContainer>
                </classpathContainers>
            </configuration>
        </plugin>
    </plugins>
</build>

Frank Rahn
Letzte Artikel von Frank Rahn (Alle anzeigen)
0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ihre E-Mail-Adresse wird nicht veröffentlicht. Ihr Kommentar wird verschlüsselt an meinen Server gesendet. Erforderliche Felder sind mit * markiert.

Weitere Informationen und Widerrufshinweise finden Sie in meiner Datenschutzerklärung.