Überlegungen zur Thread-Sicherheit

#### Search Results

Search

# Überlegungen zur Thread-Sicherheit

Da Natural vollständig reentrant ist, kann die Natural CICS-Schnittstelle mit dem Attribut `CICS CONCURRENCY(REQUIRED)` als thread-sicher definiert werden. Die Natural CICS-Schnittstelle kann dann in der offenen CICS-Transaktionsumgebung (Open Transaction Environment, OTE) unter einem offenen Thread Control Block (TCB) ausgeführt werden, um die QR CPU-Beschränkung durch Verlagerung von Aufgaben auf andere Prozessoren zu reduzieren.

Die Natural CICS-Schnittstelle sorgt für eine zusätzliche Serialisierung mittels CICS ENQ/DEQ, wenn sie unter einem offenen TCB ausgeführt wird.

Um diesen Serialisierungsaufwand zu minimieren, ist es sehr empfehlenswert,

- Threads mit `TYPE``=GETM` ohne Angabe des Parameters `THREADS` (oder `THREADS=0`) zu verwenden,

- den Natural Roll Server anstelle der Roll Facilities in CICS zu verwenden.

Anmerkungen:

1. Alle Benutzerprogramme, die als `CSTATIC` definiert sind, müssen thread-sicher sein.
2. Alle dynamischen Benutzerprogramme müssen thread-sicher sein, wenn sie unter Verwendung von Standard-Linkage-Konventionen entweder explizit (d.h. mit dem Terminalkommando `%P=S`, `%P=SC`, `*P=L` oder `%P=LS` oder mit dem Profilparameter `PGP` mit der entsprechenden Eigenschaft) oder implizit (d.h. wenn im Makro `NTCICSP` der Subparameter `SLCALL` auf `ON` gesetzt ist) aufgerufen werden. Wenn diese Programme nicht thread-sicher sind, können Sie das Terminalkommando `%P=SQ` oder den Profilparameter `PGP` (mit der Eigenschaft `STDLQ`) verwenden, um quasi-reentrante Benutzerprogramme aufzurufen. Weitere Informationen zu thread-sicheren Programmen finden Sie in der IBM Application Programming-Dokumentation.