Please let me know, how EXEC CICS LOAD PROGRAM is mentioned as affinity. There are two types of affinity 1. transaction affinity and 2. Inter transaction affinity. I am not sure on which category LOAD is mentioned as affinity.
Joined: 06 Jun 2008 Posts: 8220 Location: Dubuque, Iowa, USA
First, the IBM references talk about transaction-system affinity and not just transaction affinity. Terminology is critical in IT where similar things may mean very different things. If you meant transaction-system affinity, you should have said so. If you did not, what did you mean and what is your reference source for it?
From the CICS TS V4.2 Developing Applications manual:
Note for dynamic transaction routing: Using LOAD with HOLD, or using a resource that has been defined with RELOAD=YES, could create inter-transaction affinities that adversely affect the use of dynamic transaction routing. See Affinity for more information about transaction affinities.
I have already shared this before to you but unfortunately you did not even look at that it seems.
I think , you want the answers in Yes or NO than doing some research reading it by your own. Because, your past few posts are all talking about CICS affinity and if you don't read what it is then how would you remove them?
see how load can become affinity
Robert already answered but look what more could be part of inter-transaction affinity.
5.2.2 CICS Transaction Affinities Utility
Joined: 14 Jan 2008 Posts: 2504 Location: Atlanta, Georgia, USA
LOAD with HOLD is a definite no-no, especially in a DTR environment.
If it's left on HOLD and the next task issues a LOAD with HOLD and then the next task and so on and so on, you run the risk of going SOS in this region, a serious problem. LOAD with HOLD must be explicitly released with a RELEASE PROGRAM API as it's not released at task termination.
Once it's on HOLD, are you writing to it? If not, then I don't understand the purpose of loading it into storage.
What about RES=YES in the PPT (different than LOAD HOLD) and (if you're writing to it) use the ENQ/DEQ API's, which ensures serialization.
But, the resource name used in the ENQ/DEQ API's needs to be the same for all programs updating this table (resource) as you'll have multiple TCB's in a Threadsafe environment.