| v The LOAD and FREEMAIN protocol applies only to programs de®ned 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 ®le. |
| Scanner differences: Scanner ®nds 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 speci®ed on the DELAY command. If no REQID is speci®ed 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 speci®es 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 speci®ed. 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