Threadsafe Considerations

#### Search Results

Search

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