In addition to being able to specify the storage and execution
key for user transactions, you can also specify whether you want transaction
isolation. Transaction isolation is built on top of storage protection,
which means that STGPROT=YES must be specified. Transaction isolation uses
parameters introduced by storage protection, these being EXECKEY,
and TASKDATAKEY.
You can control transaction isolation globally for the whole CICS® region with
the TRANISO system initialization parameter. For individual transactions,
the ISOLATE option of the transaction resource definition allows you
to specify the level of protection that should apply to each transaction
and program.
ISOLATE [YES or NO]
The defaults for these options mean that, in most cases, no changes
to resource definition are needed for existing applications. However,
where necessary, protection can be tailored to allow transactions
to continue to function where they fail to meet the criteria for full
protection, which is the default.
A user-key program invoked by transaction A (TXNA) can read and
write to TXNA's user-key task lifetime storage and to shared user
storage. Moreover, TXNA has no access to transaction B's (TXNB) user-key
task lifetime storage.
If a transaction is defined as ISOLATE(NO), its user-key task lifetime
is visible to all other transactions also defined as ISOLATE(NO).
It is, however, protected from transactions defined as ISOLATE(YES).
User-key storage is not protected from CICS-key programs, even
when you set ISOLATE(YES).