There may also be an EQ affinity group in the report with a resource name of
CSMT when CSP serializes writing of information to TD destination CSMT. This
does not cause affinity because each cloned CICS has its own CSMT.
GETMAIN SHARED
There is a GM affinity group in the report for each pair of transactions that were
observed performing GETMAINs and FREEMAINs on shared storage. The
programs involved are DCBINIT and DCBRINIT.
Upon analysis, this use of GETMAIN SHARED may cause affinity. It depends on
the application. If the storage obtained is for a CSP shared table that is
updated by applications, there will be affinity. Otherwise, there should not be
affinity, because the program or table concerned is read-only and therefore
duplicate copies are loaded by each cloned CICS region in the CICSplex.
The scope of any affinity depends on the use of the shared table by the
application(s) concerned. The application developer decides this use. But it is
extremely important to note that the Transaction Affinities Utility can detect only the
transaction issuing the GETMAIN and the transaction issuing the FREEMAIN, and
not intermediate transactions sharing the storage.
Note that unmatched GETMAIN SHARED commands may also appear in the
report. This means that the Transaction Affinities Utility has seen a GETMAIN
SHARED but as yet no matching FREEMAIN. The discussion in the rest of this
section applies in this case also.
Temporary storage queues
There are temporary storage (TS) affinity groups in the report for each terminal that
participated in a pseudoconversation where the transactions involved are developed
using CSP. The TS queue names are all of the form ’EZExtttt’ where x is either A,
C, R or T, and tttt is the termid of the terminal concerned. The programs involved
are DCBINIT and DCBRINIT. The affinity group should be LUNAME/PCONV.
Upon analysis, this use of TS does cause affinity. Here, CSP is saving state data
between transactions in the pseudoconversation. But, because the TS queue
contains the termid of the terminal, the affinity must be LUNAME; that is, terminal
oriented. And because this technique is applicable only to pseudoconversational
applications, and the TS queue is deleted by CSP at the end of the
pseudoconversation, the lifetime must be PCONV. Therefore, there is
LUNAME/PCONV affinity.
This affinity may be dealt with by either defining the affinity as LUNAME/PCONV to
CICSPlex SM (which still permits good workload balancing if the
pseudoconversations are not excessively long) or, alternatively, by creating a
queue-owning region (QOR) to which all TS queue requests from all cloned CICS
regions are function shipped.
There is an interesting point to note here. Unrelated transactions may appear in the
same affinity group; that is, it looks as though different applications have shared the
same TS queue. In fact they have not; they have simply reused the TS queue
name. This occurs because the TS queue name ’EZExtttt’ is not flexible enough to
incorporate a unique application identifier. The probable result of this is that the
Transaction Affinities Utility Builder combines all transactions in all
pseudoconversational applications into a single affinity group for CICSPlex SM with
52 CICS Transaction Affinities Utility Guide