Ü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.