• Link zu Xing
  • Link zu LinkedIn
  • Link zu X
  • Link zu Rss dieser Seite
  • Link zu GitHub
  • Newsletter
  • Kontaktieren Sie mich
Frank W. Rahn
  • Meine BlogbeiträgeZeigt meinen Blog an
  • RessourcenZeigt Ihnen eine Auswahl von Ressourcen
    • Franks aktueller IT-Werkzeugkasten
      • Diese Werkzeuge setze ich zur Zeit ein
    • Meine Präsentationen
      • Zeigt Ihnen meine Präsentationen
    • Weblinks
      • Meine Linksammlung
    • Buchtipps
      • Eine Liste von mir empfohlener Literatur
    • XML-Namespace
      • Zeigt meinem XML-Namespace
  • Franks aktueller IT-WerkzeugkastenDiese Werkzeuge setze ich zur Zeit ein
  • Meine PräsentationenZeigt Ihnen meine Präsentationen
  • WeblinksMeine Linksammlung
  • BuchtippsEine Liste von mir empfohlener Literatur
  • XML-NamespaceZeigt meinem XML-Namespace
  • Über mich …Die persönlichen Informationen über den Softwarearchitekt Frank Rahn
  • Click to open the search input field Click to open the search input field Suche
  • Menü Menü
EAI, SOA

Mainframe-Zugriff via Java

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.

Inhaltsverzeichnis [anzeigen]

  • Der Quellcode und Download des Beispiels
  • Die Tipps
    • Transaktionen mit mehreren Copystrecken
    • REPLACING
    • REDEFINES
    • Mule und Maven
    • Fehler in Eclipse: Keine Generatoren gefunden

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.

Präsentation starten

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.

Achtung

Dabei darf allerdings nur eine 01 Strecke vorhanden sein.

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.

Eclipse: Fehler bei der Auswahl der Generatoren
Eclipse: Fehler bei der Auswahl der Generatoren
Eclipse: Leere Liste der Generatoren von LegStar
Eclipse: Leere Liste der Generatoren von LegStar

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.

Die benötigten Bibliotheken (Dependencies) für "LegStar for Mule"
Die benötigten Bibliotheken (Dependencies) für "LegStar for Mule"
Eclipse Java Build Path für LegStar for Mule
Eclipse Java Build Path für LegStar for Mule

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>

  • Über
  • Letzte Artikel
Frank Rahn
Frank Rahn
Frank Rahn ist Softwarearchitekt. Er unterstützt bei der Konzeption von Softwarearchitekturen mit Java-Technologie. Folge Sie ihm auf Facebook oder Twitter.

Benötigen Sie Unterstützung? Kontaktieren Sie ihn.

Hat Ihnen dieser Beitrag gefallen? Wir würden uns über Ihren Kommentar freuen! Bitte verwenden Sie Ihren bürgerlichen Namen.
Frank Rahn
Letzte Artikel von Frank Rahn (Alle anzeigen)
  • Wer ist der optimale Java Bean Mapper? - Freitag, 22. September 2023
  • Spring Boot Webanwendung: Die ersten Schritte (Tutorial) - Montag, 28. März 2016
  • Mainframe-Zugriff via Java - Sonntag, 04. Mai 2014
0 Kommentare/von Frank Rahn
Schlagworte: Architektur, Choreografie, CICS, EBCDIC, ESB, Java, Mainframe, Open Source Software, Orchestrierung, Serviceorientierte, SOAP, Webservice, WS-*, WSDL, XML, XML-Schema
Eintrag teilen
  • Teilen auf X
  • Teilen auf WhatsApp
  • Teilen auf LinkedIn
  • Per E-Mail teilen
  • Teilen auf Xing
https://www.frank-rahn.de/wp-content/uploads/legStar-modules-for-zos.png 746 1546 Frank Rahn /wp-content/uploads/logo.png Frank Rahn2014-05-04 19:06:292022-03-05 19:24:16Mainframe-Zugriff via Java
Das könnte Dich auch interessieren
Die Stored Procedure "searchPersons" mit User-defined Types (UDT) Spring und Stored Procedure mit User-defined Types (Tutorial)
Grobe Übersicht üder den Spring Framework Container Einführung in das Spring Framework
Der Service der Fahrerverwaltung Spring mit einer Webanwendung mit JPA und Validierung (Tutorial)
Das Schaubild eines RESTful Webservices RESTful-Webservices (REST-API-Design)
Die ApplicationContexte einer einfachen Spring Webanwendung Spring mit einer einfachen Webanwendung (Tutorial)
Das Klassendiagramm für den Java Bean Mapper Test am Beispiel "ByHand" Wer ist der optimale Java Bean Mapper?
0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar Antwort abbrechen

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.

Wollen Sie kein neuen Beiträge mehr verpassen?
Dann abonnieren Sie bitte meinen Newsletter.
Meinen Newsletter abonnieren

Themen

  • Wer ist der optimale Java Bean Mapper?
  • Einführung in das Spring Framework, Boot, Batch, Data, REST, Security, Web, …
  • Franks aktueller IT-Werkzeugkasten
  • Git, GitHub, EGit, …

Navigation

  • Buchtipps
  • Newsletter
  • Weblinks
Search Search

Werbung

  • JProfiler
Beliebt
  • Das Klassendiagramm für den Java Bean Mapper Test am Beispiel "ByHand"
    Wer ist der optimale Java Bean Mapper?Freitag, 22. September 2023 - 20:59 Uhr
  • Das offizielle Logo von EGit
    GitHub mit Eclipse (EGit)Freitag, 26. Oktober 2012 - 16:15 Uhr
  • Grobe Übersicht üder den Spring Framework Container
    Einführung in das Spring FrameworkSonntag, 01. Mai 2011 - 18:30 Uhr
  • Die Stored Procedure "searchPersons" mit User-defined Types (UDT)
    Spring und Stored Procedure mit User-defined Types (Tut...Freitag, 26. Oktober 2012 - 21:45 Uhr
  • Spring Boot Webanwendung
    Spring Boot Webanwendung: Die ersten Schritte (Tutorial...Montag, 28. März 2016 - 16:29 Uhr
Schlagworte
Annotations AOP Architektur Autorisierung Cookies CRUD DAO DI Git HTML HTTP IoC Java Java EE Java SE JPA JSR Linux MVC Open Source Software PDF POJO REST (RESTful) ROCA Self-contained Systems Serviceorientierte Shell Sicherheit (Security) SOAP Spring SQL SVN Test Toolchain URI URL URN User-defined Type Versionsverwaltung VPN Webservice WS-* WSDL XML XML-Schema

Blogarchiv

Links

Mastodon
Twitter
LinkedIn
Xing
GitHub

Lizenz

Creative Commons Lizenzvertrag Die Texte (nicht Bilder) von Frank Rahn stehen unter einer Creative Commons Namensnennung - Keine Bearbeitungen 4.0 Deutschland Lizenz.

Affiliate-Links

Die mit (*) gekennzeichnete Links sind sogenannte Affiliate-Links. Kommt über einen solchen Link ein Einkauf zustande, werde ich mit einer Provision beteiligt. Für Sie entstehen dabei keine Mehrkosten. Wo, wann und wie Sie ein Produkt kaufen, bleibt natürlich Ihnen überlassen.

Blogkategorien

Copyright © Frank W. Rahn
  • Impressum / HaftungsausschlussDie notwendigen gesetzlichen Angaben dieser Webseite von Frank Rahn
  • DatenschutzerklärungDie Datenschutzerklärung von Frank Rahn
  • NewsletterKeine neuen Beiträge mehr verpassen!
  • BildnachweisDer komplette Bildnachweis von Frank Rahn
Link to: Mehrere PDF- oder PS-Dokumente zusammenfügen Link to: Mehrere PDF- oder PS-Dokumente zusammenfügen Mehrere PDF- oder PS-Dokumente zusammenfügenMehrere PDF- oder PS-Dokumente zusammenfügen Link to: Spring Boot Webanwendung: Die ersten Schritte (Tutorial) Link to: Spring Boot Webanwendung: Die ersten Schritte (Tutorial) Spring Boot WebanwendungSpring Boot Webanwendung: Die ersten Schritte (Tutorial)
Nach oben scrollen Nach oben scrollen Nach oben scrollen

Wir setzen auf unserer Webseite verschiedene Arten von Cookies ein, die auf Ihrem Gerät gespeichert werden. Einige dieser Cookies sind für die einwandfreie Funktion der Webseite notwendig, während andere Cookies Ihnen ein besseres Besuchererlebnis bieten.

DatenschutzerklärungImpressumAlle Cookies akzeptierenKeine Cookies akzeptierenIndividuelle Cookie-Einstellungen vornehmen

Cookie- und Datenschutzeinstellungen



Wie wir Cookies verwenden

Wir setzen auf unserer Webseite verschiedene Arten von Cookies ein, die auf Ihrem Gerät gespeichert werden.

Einige dieser Cookies sind für die einwandfreie Funktion der Webseite notwendig, während andere Cookies Ihnen ein besseres Besuchererlebnis bieten.

Klicken Sie links auf die verschiedenen Reitern, um mehr zu erfahren. Sie können auch einige Cookie-Einstellungen individuell anpassen. Beachten Sie, dass das Blockieren einiger Cookies die einwandfreie Funktion unserer Webseite beeinträchtigt.

Technisch notwendige Cookies

Diese Cookies sind unbedingt erforderlich, denn sie ermöglichen grundlegende Funktionen und sind für die einwandfreie Funktion der Webseite erforderlich.

Sie können diese Cookies jederzeit blockieren oder löschen, indem Sie Ihre Browsereinstellungen ändern und die Blockierung aller Cookies auf dieser Webseite erzwingen. Leider werden Sie dann immer wieder gefragt, ob Sie Cookies akzeptieren oder ablehnen wollen, wenn Sie unsere Webseite erneut besuchen.

Wir setzen die Cookies aviaPrivacyEssentialCookiesEnabled, aviaPrivacyMustOptInSetting, aviaPrivacyRefuseCookiesHideBar und aviaCookieConsent ein, um Ihre individuellen Cookie-Einstellungen zu speichern. Diese Informationen geben wir an keinen Drittanbietern weiter.

Diese Cookies haben eine Laufzeit von einem Jahr, dann müssen Sie die Einstellungen wiederholen.

Die VG WORT setzt das Sitzungscookie srp zur Messung von Zugriffen auf Texten, um die Kopierwahrscheinlichkeit des Textes zu erfassen. Damit partizipieren ich an den Ausschüttungen der VG WORT, welche die gesetzliche Vergütung für die Nutzungen urheberrechtlich geschützter Werke gemäß § 53 UrhG sicherstellen. Das Cookie wird dazu verwendet, um den Nutzer zu identifizieren und ggf. Daten mehrerer Aufrufe von Texten miteinander verknüpfen zu können.

Nach Angaben der VG WORT stellt das eingesetzte Verfahren sicher, dass einzelne Nutzer oder ihr Leseverhalten nicht ermittelbar sind, wenn die Anzahl der Textaufrufe gezählt wird. Alle von der VG Wort erfassten Daten werden sofort sicher verschlüsselt. Der Einsatz des Zählpixels wurde durch das Bayerische Landesamt für Datenschutzaufsicht begutachtet und als datenschutzkonform bewertet.

Datenschutzerklärung der VG WORT

Marketing-Cookies

Die Marketing-Cookies werden von Drittanbietern oder Publishern, wie z. B. Google Analytics, verwendet, um personalisierte Werbung anzuzeigen. Sie tun dies, indem sie Besucher über Webseiten hinweg verfolgen (Tracking).

Wir setzen keine Marketing-Cookies ein.

Datenschutzbestimmungen

Sie können unsere Cookies und Datenschutzeinstellungen im Detail in unserer Datenschutzerklärung nachlesen.

Cookie-Einstellungen übernehmenKeine Cookies akzeptieren
Nachrichtenleiste öffnen Nachrichtenleiste öffnen Nachrichtenleiste öffnen