Ich habe ein COBOL-Programm, das Daten von einem Web-Service erhalten muss. Ohne CICS zu verwenden, was sind meine besten Optionen? Ich dachte, dass ein C-Programm den Webdienst lesen und in einer Datei speichern könnte, dann könnte der COBOL diese Datei lesen. Kann COBOL einen Webservice anrufen? Die Daten sind ungefähr 300mb groß.Wie kann z/OS einen Webservice anrufen?
Antwort
Vielleicht werfen Sie einen Blick auf this article. Es schlägt vor, eine C/C++ - Wrapper-Oberfläche für den Web-Service zu erstellen. Obwohl dieser Artikel für iSeries gedacht ist, können Sie unter zSeries unter Verwendung von BPXBATCH unter Verwendung von BPXBATCH etwas sehr ähnliches implementieren. Sie schlagen im Grunde vor, einen C-Wrapper zwischen Ihrem COBOL-Code und dem C++ - Code zu verwenden, der mit dem Web-Service verbunden ist. Diese Lösung ermöglicht es COBOL, eine C-Funktion auf relativ einfache Weise aufzurufen. Die C-Funktion ahmt das C++ - Verhalten nach, indem sie den Aufruf des Web-Service mit einem C++ - Proxy implementiert.
Wenn Sie Java auf Ihrer Site verwenden können, ist Java möglicherweise ein Aufruf von einem Cobol-Programm, um auf den Webdienst zuzugreifen. Abschnitt überprüft Angenommen, Ihre Verwendung von Enterprise COBOL 6.44 von Java Stand-alone Applications on z/OS Volume II
Ich stehe dabei zwar korrigiert, aber ... ich denke, es ist möglich, COBOL-Subroutinen (Methoden) aus einer Java-Anwendung aufzurufen, aber nicht umgekehrt. Java muss unter JNI ausgeführt werden, aber COBOL benötigt es nur, wenn es von Java aus aufgerufen wird. Wenn der Prozess auf oberster Ebene nicht unter JNI (dh Java) ausgeführt wird, können Prozesse niedrigerer Ebene, die ihn erfordern, nicht aufgerufen werden. Dies ist der Grund, warum OO COBOL-Hauptstrecken unter z/os, na ja, nicht existieren (sie können nur von einem Java-Programm aufgerufen werden). – NealB
Nutzung der IBM TCP/IP 'EZASOKET' Module
Ich arbeite für ein Unternehmen mit einem z/OS-System meist COBOL ausgeführt wird, Batch (JCL) und CICS. Um Webservices aufzurufen, haben wir ein Modul geschrieben, um HTTP 1.0 mittels TCP/IP zu implementieren. Mit Modulen
- EZASOKET
- GETHOSTBYNAME
- STECK
- CONNECT
- WRITE
- FCNTL
- LESEN
- SCHLIEßEN
- SELECTEX
Zusatzmodule:
- EZACIC04 EBCDIC übersetzt
- EZACIC05 nach ASCII übersetzt ASCII zu EBCDIC
- EZACIC06 convert Zeichen Bit
- EZACIC08 dekodieren IP-Adresse
Seit ich das für meine Firma geschrieben habe, kann ich den Code nicht einfach rausgeben. Aber als Referenz brauchte ich 3 Tage, um das Modul zu schreiben, und das war mit einem Beispiel, um damit zu beginnen, das eine teilweise hacky Art machte, es zu tun.
Sie müssen die Referenzen von IBM durchlesen, um zu wissen, wie Sie die EZA-Module verwenden.
Es ist möglich, Java von COBOL-Programme auf z/OS zu nennen.
Wir haben es in unserer Firma getan.
- Sie müssen angeben, dass es RECURSIVE ist
- Sie haben die Klassen zu importieren
Klasse HelloJ ist
"com.ibm.zos.batch.container.test.HelloJ"
Klasse JavaException ist "java.lang.Exception"
Klasse BCDTranHelper ist
"com.ibm.batch.spi.UserControlledTransactionHelper".
- Die müssen Sie JNI enthalten. LINKAGE ABSCHNITT. COPY JNI
* * * Dann können Sie Java von COBOL in Ihrem PROCEDURE DIVISION mit aufzurufen:
Invoke HelloJ "sayHello"
Schauen Sie auch auf Java Exception Check * zu sehen, wie zu handhaben die Ausnahmen.
Dies ist sehr nützlich, wenn Sie einen Web-Service von Ihrem COBOL-Programm auf z/os aufrufen möchten.
siehe diesen Link für weitere Details.
http://pic.dhe.ibm.com/infocenter/zos/v1r13/index.jsp?topic=%2Fcom.ibm.zos.r13.iean500%2Fcodeexm.htm
- 1. Postgresql - Änderungen erkennen und Webservice anrufen
- 2. Plötzlich fehlgeschlagen Webservice von Web-Client anrufen
- 3. C# - sql - Webservice von sql anrufen
- 4. Wie kann ich einen aufgehängten Webservice simulieren?
- 5. Android meinen eigenen LOCAL WebService (Symfony) in localhost anrufen
- 6. Wie kann ich FastEqualsCheck() anrufen?
- 7. Wie kann ich einen JavaScript-Konstruktor anrufen oder anwenden?
- 8. Wie kann ein JSON einen anderen JSON anrufen
- 9. Wie kann ich einen Dienstleister innerhalb eines anderen anrufen - angularjs2
- 10. Java WebServices - wie Service anrufen?
- 11. Wie kann ich in Ios anrufen?
- 12. Einen GSM Service # 123 anrufen #
- 13. Suche einen Webservice, die
- 14. DB2 on zOS-Katalogtabelle für Schemas?
- 15. Wie kann ich anrufen EditorFor vom Controller
- 16. Wie kann man einen erholsamen Webservice mit oauth sichern?
- 17. Wie kann ich einen MTOM-Webservice mit soapUI testen?
- 18. Wie kann ich mit Powershell auf einen erholsamen Webservice zugreifen?
- 19. Wie kann ich Dokumente über einen Webservice streamen?
- 20. Wie kann ich den Zugriff auf einen Webservice programmatisch beschränken?
- 21. Wie kann ich einen AXIS-Webservice über AJAX aufrufen?
- 22. Wie kann ich einen Webservice auf meiner Wordpress-Website verwenden?
- 23. Kann ich einen synchronen Aufruf an einen WebService abbrechen?
- 24. Wie sichere ich einen Webservice in .net?
- 25. wie Sie @ app.before_request anrufen
- 26. Socket.IO kann nicht 'on' anrufen
- 27. Wie startet man automatisch einen C# WebService?
- 28. ExecutionEngineException für einen HttpDuplexBinding-Webservice-Aufruf
- 29. Beispiel für einen guten Webservice
- 30. Webservice Anruf von Jenkins
Gibt es einen bestimmten Grund, warum CICS verboten hier ist? Der Zugriff auf CICS-Services über einen Batch-Job ist sehr einfach. – zarchasmpgmr