LINK will pass control to the next module and return the first module. This will hold the complete memory of all Linked modules.
XCTL will transfer control to next control & wont return back. This will wipe off the first module's resources while doing a XCTL.
Now i want to know more about START
Note1:START will invoke a transaction & it will continue with next statement in the module. My question is,
Note2: IF Program A issues START to invoke transaction ABCD, then ABCD will be invoked and Program A also continues processing.
Now what will happend to resources of Program A? Can anyone confirm that the resources of Program A will get wiped off, even though transaction ABCD is still under execution.
Reason i need this info is.
* We have a existing code whose flow is A---> B---> C---> D----->E, each of them are LINKed together.
Now we wrote a new module F, which is Linked by E. The problem is F uses lot of memory so CICS Team asked us to change the design to reduce memory.
We cannot go for XCTL from E to F.. Because based on E's processing, D will do something, based on D's processing, C will so something etc.
E do not want any data to be returned from F.
Now we planed to split F into 5 modules F1, F2, F3, F4, F5 each of them in turn called using XCTL. Now real problem is calling F1 from E with out using LINK and XCTL
So we found 2 options,
* E will place a data in TDQ. Whenever a data is placed in TDQ, a transaction (mapped to F1) will automatically invoke. This will allow E to return to D, etc.
* E uses START to invoke a transaction mapped to F1. (Considering Note1 to be true)
We are planning to use 2nd option, if Note1 & Note2 holds good. Can anyone confirm this?