Threadsafe Considerations

Since Natural is fully reentrant, Natural CICS Interface can be defined as threadsafe by using the CICS CONCURRENCY(REQUIRED) attribute. Natural CICS Interface can then execute in the CICS open transaction environment (OTE) under an open TCB to reduce the QR CPU constraint by moving tasks to other processors.

Natural CICS Interface provides for extra serialization using CICS ENQ/DEQ when running under an open TCB.

In order to minimize these serialization efforts, it is highly recommended

  • to use TYPE=GETM threads without the THREADS parameter specified (or THREADS=0),

  • to use the Natural Roll Server rather than roll facilities in CICS.

Notes:

  1. All user programs defined as CSTATIC have to be threadsafe.
  2. All dynamic user programs have to be threadsafe if they are invoked using standard linkage conventions either explicitly (that is, using the terminal command %P=S, %P=SC, *P=L or %P=LS, or the PGP profile parameter with the respective property) or implicitly (that is, when the NTCICSP macro parameter SLCALL is set to ON). If these programs are not threadsafe, you can use the %P=SQ terminal command or PGP profile parameter (with the STDLQ property set) to call quasi-reentrant user programs. Additional information on threadsafe programs can be found in the IBM documentation related to CICS application programming.