IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

CICS - LINK,XCTL and START


IBM Mainframe Forums -> CICS
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
malathys

New User


Joined: 07 Aug 2008
Posts: 10
Location: chennai

PostPosted: Tue Aug 28, 2012 3:10 pm
Reply with quote

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 happen 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,
* Module 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.
* Module 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?
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Tue Aug 28, 2012 4:14 pm
Reply with quote

yeah, check the cics manuals, hyperlink at top of the page.
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8697
Location: Dubuque, Iowa, USA

PostPosted: Tue Aug 28, 2012 5:00 pm
Reply with quote

Quote:
IF Program A issues START to invoke transaction ABCD, then ABCD will be invoked and Program A also continues processing.
Whether or not this is true depends upon the START. If you issue a START tied to the terminal that program A is executing on, then transaction ABCD will do nothing until the current transaction is done and releases the terminal. If you issue a START not tied to a terminal (also called a background transaction), ABCD will begin executing immediately (or if interval controlled when the interval expires or if time controlled when the appropriate time is reached) but has no access to any of program A's resources (except any COMMAREA passed via the START command).

Your note 2 is also addressed by these comments -- whether or not program A's resources are released by CICS depends upon the type of START being executed and what program A does after the START. Program A will continue to execute until EXEC CICS RETURN is performed in your code.
Back to top
View user's profile Send private message
malathys

New User


Joined: 07 Aug 2008
Posts: 10
Location: chennai

PostPosted: Wed Aug 29, 2012 6:09 pm
Reply with quote

Hi Robert,

Thanks for your explanation.

I have a doubt.

Are there anything special needs to be done for making ABCD as a background transaction. Also, my Program A & Transaction ABCD are independent.
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8697
Location: Dubuque, Iowa, USA

PostPosted: Wed Aug 29, 2012 6:33 pm
Reply with quote

If ABCD is going to run as a background transaction, there cannot be any SEND MAP or RECEIVE MAP or RECEIVE or other terminal-oriented CICS command in the code. ABCD can use files and TS or TD queues, just no terminal activity.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CICS

 


Similar Topics
Topic Forum Replies
No new posts Using API Gateway from CICS program CICS 0
No new posts Calling an Open C library function in... CICS 1
No new posts How to 'Ping' a CICS region in JCL CICS 2
No new posts Parallelization in CICS to reduce res... CICS 4
No new posts How to avoid duplicating a CICS Web S... CICS 0
Search our Forums:

Back to Top