v The LOAD and FREEMAIN protocol applies only to programs defined as
RELOAD(YES). Note that HOLD is irrelevant, as CICS Program Control never
sees the FREEMAIN, or knows the storage location of the individual task’s copy,
and so cannot release the program at task end. This implies that all LOADs must
be examined as they are all effectively LOAD HOLDs.
v The affinity relation may be GLOBAL, BAPPL, LUNAME, or USERID.
v Lifetime can be PCONV, LOGON, SIGNON, ACTIVITY, PROCESS,or SYSTEM.
However, the Detector always worsens LOGON and SIGNON to SYSTEM,
because of limitations in the way that this affinity is detected.
v Commands in error are ignored, because there is no load address on which to
match LOAD with FREEMAIN, so no data is collected.
LOADs with no SET option are ignored, because no load address is returned, so
no data is collected.
v A LOAD/FREEMAIN affinity is considered to be initiated from a terminal if the
LOAD is initiated from a terminal. Whether the FREEMAIN was so initiated or not
is irrelevant.
v Any unmatched LOADs are also reported if they have never matched by the time
a Detector stop occurs. They are output in a separate report section. Note that
on a start with restore data, they are not restored and are deleted from the
affinity file.
Scanner differences
: Scanner finds all instances of LOAD and all instances of
FREEMAIN.
CANCEL/DELAY/POST/START
v The affinity here is between the transaction that issues the DELAY, POST or
START command and the transaction that issues the CANCEL command via
REQID. The match is on REQID.
v In order for another task to CANCEL a DELAY, REQID must be explicitly
specified on the DELAY command. If no REQID is specified on a DELAY
command, it cannot be canceled, and therefore cannot be detected.
In order for another task to CANCEL a START or POST, it is not necessary to
specify REQID on the command because CICS supplies a unique REQID that
may be used (unless START specifies NOCHECK). So only START commands
that do not both specify NOCHECK and omit REQID, and all POST commands,
are detected.
v Further, data is not collected for commands that expire on entry to Interval
Control, because they cannot be canceled (because an element control interval
(ICE) is not created). DELAY and POST commands get an EXPIRED response.
For START commands there is no such response; so ’expired on entry’ is
deduced if INTERVAL(0) was specified. This detects most ’expired on entry’
STARTs, but not all.
v START, DELAY, and POST commands in error are ignored, so no data is
collected.
v CANCEL commands that omit REQID are ignored because they cannot cancel
another task. CANCEL commands that return a NOTFND response are also
ignored because the ICE must have expired and the CANCEL must have failed.
No data is collected for these.
v REQIDs are assumed to be unique; that is, there are no simultaneous pairs of
START/CANCEL using the same REQID. Having such a pair violates CICS
programming guidelines, and the results from CICS are unpredictable.
v The affinity relation for START may be GLOBAL, BAPPL, LUNAME, or USERID.
68 CICS Transaction Affinities Utility Guide
|
|
|