Übersicht über COBOL-Container
Der COBOL-Container ermöglicht das Laden von COBOL-Modulen in den Stapeladressraum und deren direkten Aufruf.
Der Container kann im Lebenszyklus eines Anwendungsservers mehrfach erstellt und gelöscht werden. Jeder Container wird mit einer LE-Enklave (Language Environment ®) erstellt, die vom Server getrennt ist. Dem Container wird auf diese Weise jedesmal, wenn er erstellt wird, eine bereinigte LE bereitgestellt.
Java™ -Programme können Parameter an COBOL übergeben und die Ergebnisse abrufen. Das Generatortool für COBOL-Aufrufstubs. wird bereitgestellt, um die Java-Aufrufstubs und Datenbindungen auf der Basis der Daten-und Verbindungsdefinitionen in der COBOL-Quelle zu erstellen. Außerdem können JDBC-Verbindungen des Typs 2, die vom Java-Programm erstellt werden, gemeinsam mit dem COBOL-Programm unter demselben Transaktionskontext verwendet werden.
Wert des COBOL-Containers
Das Produkt ist eine umfassende Ausführungsumgebung für Java-Stapelverarbeitung. Zum Design der Stapelunterstützung gehört die Integration mit anderer Informationsverarbeitung. COBOL gehört seit den Anfängen von Computern zur Stapelverarbeitung, und die Investitionen in COBOL-Assets sind beträchtlich. Der COBOL-Container ist ein Mittel für die direkte Integration von COBOL in die Java-Stapelverarbeitung.
Programmiereinschränkungen für COBOL-Programme
- Benutzerdefinierte Fehlerhandler sind nicht zulässig.
- Eine explizite Transaktionssteuerung ist nicht zulässig, z. B. kein COMMIT oder ROLLBACK.
- DB2® -Sonderregister. B. SOLID oder SCHEMA, kann nicht festgelegt werden.
- Für den DD-Zugriff wird vorausgesetzt, dass Benutzercode den DD dynamisch zuordnet und freigibt.
- Der Java-Aufruf von ENTRY-Kennsätzen wird nicht unterstützt.
- Der COBOL-Aufruf von Java-Code wird nicht unterstützt.
Voraussetzungen für die COBOL-Kompilierung
Sie müssen alle COBOL-Module, die Sie in der Umgebung verwenden, mit den folgenden Optionen kompilieren:
- dll
- COBOL-Module müssen das DLL-Format haben.
- rent
- COBOL-Module müssen wiedereintrittsfähigen Code enthalten.
- Faden
- COBOL-Module müssen threadsicher sein.
- outdd(WCGILOUT)
- Erforderlich, damit die Ausgabe von COBOL DISPLAY in den Produktjobprotokollen erscheint.
- SQL('ATTACH(RRSAF)')
- Erforderlich für den DB2-Zugriff.
cbl dll,lib,rent,thread,outdd(wcgilout)
cob2 -c -bdll,rent,thread,lib,list '-qOUTDD(WCGILOUT)' sample.cbl
Einschränkungen für den COBOL-Container
Das Produkt, in dem der COBOL-Container ausgeführt wird, muss mit dem Auslastungsprofil ISOLATE konfiguriert sein.
Informationen zum Konfigurieren des Auslastungsprofils finden Sie im Artikel "Erweiterte Einstellungen für ORB-Services" auf der Plattform z/OS® .
JDBC-Datenquelleneinschränkungen für den COBOL-Container
Die in diesem Abschnitt aufgelisteten Einschränkungen gelten für alle JDBC-Datenquellen, die DB2-Verbindungen des Typs 2 enthalten, die von Java- und COBOL-Code über ILContainer.setDB2Connection gemeinsam genutzt wird. [Geben Sie auch den Objekttyp für ILContainer.setDB2Connection an.]
Diese Einschränkungen stellen sicher, dass alle DB2-Datenkonstrukte, die vom COBOL-Code geöffnet werden und über COMMIT-Grenzen bestehen bleiben, wie z. B. WITH HOLD CURSOR, ordnungsgemäß bereinigt werden, wenn die JDBC-Verbindung geschlossen wird.
Das Verbindungspooling muss inaktiviert sein. Sie können das Verbindungspooling mit der Eigenschaft "disableWASConnectionPooling" inaktivieren. Klicken Sie in der Administrationskonsole auf disableWASConnectionPooling
hinzu und setzen Sie sie auf true
.
Die gemeinsame Nutzung
von Verbindungen muss auf UNSHARED gesetzt werden. Die gemeinsame Nutzung von Verbindungen für die Datenquelle
kann mit der Eigenschaft "globalConnectionTypeOverride" auf UNSHARED gesetzt werden. Um diese Eigenschaft über die Administrationskonsole festzulegen, klicken Sie auf globalConnectionTypeOverride
hinzu und setzen Sie sie auf unshared
.
Weitere Informationen zu diesen Eigenschaften finden Sie im Artikel Verbindungspools optimieren.