Taking affinity relations into consideration

An affinity is a relationship that you define between two or more transactions for the duration, or lifetime, of that relationship.

When an affinity relationship exists between transactions, those transactions must be processed by the same target region. You can use affinities to route transactions from one or more requesting regions to a specific target region based on the rules applying to a particular combination of an affinity relation and lifetime. For a list of affinity relation and lifetime values, see Affinity relations and affinity lifetimes.

When multiple CMASs in the CICSplex manage affinities for the workload, and one of these CMASs is brought down and the local MASs stay up, the workload becomes frozen. When the workload is frozen, it cannot be changed, however the current workload remains active.

When a CMAS is down, and you have any of the following affinity life times and affinity relationships, a new affinity instance cannot be created, and the transaction cannot be routed to the target MAS associated with the affinity, because the local TORs cannot be informed of the workload changes while the workload is frozen.

Affinity relation Affinity lifetime
BAPPL
  • SYSTEM
  • PERMANENT
  • ACTIVITY
  • PROCESS
GLOBAL
  • SYSTEM
  • PERMANENT
LUNAME
  • SYSTEM
  • PERMANENT
USERID
  • SYSTEM
  • PERMANENT

When the CMAS is brought back up and reconnects to the MASs, the workload is unfrozen and is able to be changed.

You can use the IBM CICS Interdependency Analyzer for z/OS® to detect existing affinities between transactions and between BTS processes and activities. The output from the Reporter component of that utility can be used as input to the CICSPlex® SM batched repository-update facility. For more information, see CICS Interdependency Analyzer for z/OS Overview.

Note: You cannot use CICS® Interdependency Analyzer to detect affinities between non-terminal-related EXEC CICS START commands, and between DPLs that are not associated with either a user ID or a terminal ID. For these request types, you should try to remove or avoid all affinities, and ensure that your applications can honor any remaining affinities.