Überlegungen zur CICS Open Transaction-Umgebung

#### Search Results

Search

# Überlegungen zur CICS Open Transaction-Umgebung

Wenn Sie Natural in der offenen CICS-Transaktionsumgebung (Open Transaction Environment, OTE) unter einem offenen Thread Control Block (TCB) ausführen möchten, müssen alle externen Subprogramme thread-sicher und vollständig reentrant sein, wenn sie von Natural unter Verwendung von Standard-Linkage-Konventionen (direkte Verzweigung mit einer BASR-Anweisung) anstelle eines `EXEC CICS LINK`-Kommandos aufgerufen werden. Es reicht nicht aus, dass die aufgerufenen Subprogramme nur quasi-reentrant sind. Dies gilt für alle externen Subprogramme, die mit den Profilparametern `CSTATIC`, `RCA` oder `PGP` unter Natural definiert sind oder nach Absetzen des Terminalkommandos `%P=S` aufgerufen wurden.

Wenn ein Subprogramm quasi-reentrant, aber nicht thread-sicher ist, müssen Sie das Terminalkommando `%P=SQ` anstelle von `%P=S` verwenden, oder Sie müssen den Profilparameter `PGP` mit gesetzter Eigenschaft `STDLQ` verwenden. Bei Verwendung des Terminalkommandos `%P=SQ` oder des Profilparameters `PGP` (mit `STDLQ`) wird das externe Subprogramm auf dem CICS QR TCB und nicht unter einem offenen TCB ausgeführt. Natural gibt dann das CICS-Kommando `EXEC CICS LINK PROGRAM('NCILINKQ')` aus, um zum QR TCB zu wechseln und das `NCILINKQ`-Programm auszuführen, das das Subprogramm unter Verwendung von Standard-Linkage-Konventionen aufruft.

Wenn Sie das Terminalkommando `%P=SQ` oder den Profilparameter `PGP` (mit `STDLQ`) verwenden, müssen Sie `NCILINKQ` so definieren, wie in Routing-Modul für quasi-reentrante Standard-Linkage-Aufrufe (`%P=SQ`) im Abschnitt Installing Natural CICS Interface in der Installation for z/OS-Dokumentation beschrieben.

Wenn ein aufgerufenes externes Subprogramm nicht mit dem Profilparameter `CSTATIC` oder `RCA` unter Natural definiert ist, aber einen PPT-Eintrag im Operating PPT hat und sich in einer Load Module Library befindet, so dass CICS das Subprogramm lokalisieren und laden kann, wird der Aufruf durch ein `EXEC CICS LINK`-Kommando durchgeführt. Wenn das aufgerufene Subprogramm mit `CONCURRENCY(QUASIRENT)` definiert ist, schaltet CICS automatisch auf den QR TCB um, um den Aufruf auszuführen.

Wenn ein aufgerufenes externes Subprogramm mit dem Profilparameter `CSTATIC` oder `RCA` unter Natural definiert ist, gelten das Terminalkommando `%P=SQ` und der Profilparameter `PGP` (mit `STDLQ`) nicht.

Um Probleme zu vermeiden, sollten Sie die Programmattribute `API(OPENAPI)` und `CONCURRENCY(REQUIRED)` konsequent für alle Programmaufrufe verwenden, die eine direkte Verzweigungsanweisung (BASR) verwenden. Dies gilt auch für Frontend-Programme von Natural-Add-on-Produkten, die den umgebungsabhängigen Nukleus von Natural aufrufen. Weitere Informationen finden Sie unter Überlegungen zur Thread-Sicherheit.