Detailed affinity analysis – IBM Transaction Server OS User Manual
Page 67
Detailed affinity analysis
Each of the above command scenarios is dealt with below. A description of how the
use of the command appears in the Transaction Affinities Utility Reporter report is
given, followed by an assessment of any affinity problem it causes. However, it
would be helpful first to expand on the structure of a CSP segmented application.
The default CICS transaction identifier that CSP provides for applications is XSPS,
although this is normally replaced by a unique transid for the application concerned.
CSP transactions are defined so that the initial program is DCBINIT or DCBRINIT,
the former for the first segment (that is, the first transaction in a
pseudoconversation), the latter for subsequent segments. These two CSP programs
ensure that the correct environment is built for the application, including loading of
programs and tables and saving and restoring of state data. DCBINIT and
DCBRINIT branch to other CSP programs, but these other programs are not known
to CICS. This means the Transaction Affinities Utility Reporter report shows
DCBINIT or DCBRINIT as the program containing the affinity command, but the
command offset is the generic x’FFFFFFFF’. In fact, the CSP program that issues
most EXEC CICS commands is DCBMODS.
It is very important to note that a single report transaction/program/offset entry can
conceal several affinity commands. Although the Transaction Affinities Utility
Detector has correctly logged, and deduced information from, all the commands, it
is only the first one encountered that is described in full in the report. So the
Transaction Affinities Utility may report DCBINIT issuing only ENQUEUEs, but in
reality DCBMODS is issuing both ENQUEUEs and DEQUEUEs. Similarly, the
Transaction Affinities Utility may report that DCBINIT is issuing only WRITEQ TS
commands, but in reality DCBMODS is issuing READQ TS and DELETEQ TS as
well. (The Transaction Affinities Utility Scanner shows that this is indeed the case
when it is run against the CSP/AE load library.)
Note that there is a unique generic offset for each different command type within an
affinity group. The generic offset is zero minus the group/function code for the
command. So, for example, ENQUEUEs appear with x’FFFFEDFC’, and
DEQUEUEs appear with x’FFFFEDFA’. This is also the case for other command
types.
ENQUEUE/DEQUEUE
There is an EQ affinity group in the report for each table or application or map that
is loaded. The resource used in each case starts with ’FZE’ and contains the name
of the load module concerned. Other resources that may appear are ’FZELOAD’
and ’FZETUTRI’. The programs involved are DCBINIT and DCBRINIT.
Upon analysis, this use of ENQUEUE/DEQUEUE does not cause affinity. Here, the
ENQUEUE/DEQUEUE is being used to serialize a browse on an ALF, so that
another CSP application in the same CICS region does not interfere with the
loading process. If multiple CICS regions were cloned, each cloned CICS region
must perform this same loading process, but this has no effect on any of the other
CICS regions. So the ENQUEUE/DEQUEUE is not CICSplex wide and does not
cause affinity. All that is required is to ensure that each CICS has access to the
ALFs. Because these are used read-only by CSP/AE, the ALFs may be shared
without resorting to the overhead of function shipping.
Chapter 6. Running the Reporter
51