Ü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 vom Server gesonderten LE-Enklave (Language Environment) erstellt. Dem Container wird auf diese Weise jedes Mal, wenn er erstellt wird, eine bereinigte LE bereitgestellt.
Java™-Programme können Parameter an COBOL übergeben und die Ergebnisse abrufen. Das COBOL-Aufrufstubgeneratortool wird bereitgestellt, mit dem die Java-Aufrufstubs und Datenbindungen basierend auf den Daten- und Verbindungsdefinitionen in der COBOL-Quelle erstellt werden können. 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-SSonderregister, wie z. B. SOLID und SCHEMA, können nicht definiert 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.
- thread
- 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 in den Beschreibungen der erweiterten Einstellungen der ORB-Services für die 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. Zum Definieren dieser Eigenschaft klicken Sie in der Administrationskonsole auf
. Fügen Sie eine angepasste Eigenschaft mit dem Namen 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. Zum Definieren dieser Eigenschaft klicken Sie in der Administrationskonsole auf
. Fügen Sie eine angepasste Eigenschaft mit dem Namen globalConnectionTypeOverride hinzu, und setzen Sie sie auf unshared.Weitere Informationen zu diesen Eigenschaften finden Sie im Artikel "Verbindungspools optimieren".