View previous topic :: View next topic
|
Author |
Message |
Biswajit Nanda
New User
Joined: 28 Mar 2011 Posts: 9 Location: India
|
|
|
|
Do we need TRANSID in LINK and XCTL? and is it necessary to have TRANSID in LOAD command? |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
Back to top |
|
|
Biswajit Nanda
New User
Joined: 28 Mar 2011 Posts: 9 Location: India
|
|
|
|
no i will look into it for sure , am a begineer so having such problems, please cope up |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
being a beginner is not an excuse for not reading the manuals
and throwing senseless questions around,
what made You think that a TRANSID is needed for a LINK/XCTL/LOAD, just a wild guessing
but sincerely You might be better off here
ibmmainframeforum.com/index.php
where beginners questions are better hosted
the first one to cope up with proper training is Your employer
unless Your organization is so cheap to try to get free training from us
replying on a forum is
on voluntary basis
on our own time
free of charge
interest of the question asked
if the question is <silly> Your chances of getting a good answer, like I did in this case, are slim
not everybody cares to spend time on minutiae ( small/irrelevant matters )
for the manuals there is a link at the top of the page
or the mother of all knowledge here
www-03.ibm.com/systems/z/os/zos/bkserv/index.html |
|
Back to top |
|
|
Biswajit Nanda
New User
Joined: 28 Mar 2011 Posts: 9 Location: India
|
|
|
|
hey, its not about training...
the main doubt is,
the format to represent a LINK or XCTL command is
EXEC CICS LINK/XCTL
PROGRAM (NAME)
[COMMAREA(DATA-NAME)]
[LENGTH(DATA-VALUE)
END EXEC
Where in RETURN command we use TRANSID(NAME) instead of PROGRAME(NAME)...
my question is can we use TRANSID(NAME) instead of PROGRAM(NAME) in LINK/XCTL?
If yes why?
and if no why? |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
first ...
learn the good manners, hey is a way of addressing dogs, not people
second
the manuals links I posted explain things vey clearly any reason not to read and try to understand them ?
if the manual tell about PROGRAM (NAME) and not about TRANSID(NAME)
one reason why You cannot do it is... guess what... because the manual tells so |
|
Back to top |
|
|
Biswajit Nanda
New User
Joined: 28 Mar 2011 Posts: 9 Location: India
|
|
|
|
enrico you are taking the conversation in a wrong way,i never intended to misbehave you... I went through the material,and i replied then, i didn't get my answer there, so i asked you back.... |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
what kind of reply would You expect from the manuals ...
if an option is not there no whining will make it appear
Quote: |
if the manual tells about PROGRAM (NAME) and not about TRANSID(NAME)
one reason why You cannot do it is... guess what... because the manual tells so(*) |
(*)the manual reflect the design of the software...
at the end asking why a product behaves the way it does is just useless speculation
the people who designed decided in that way |
|
Back to top |
|
|
Stefan
Active User
Joined: 12 Jan 2006 Posts: 110 Location: Germany
|
|
|
|
Biswajit Nanda wrote: |
Where in RETURN command we use TRANSID(NAME) instead of PROGRAME(NAME)...
... can we use TRANSID(NAME) instead of PROGRAM(NAME) in LINK/XCTL |
EXEC CICS RETURN means that your program and the associated transaction ends and control is given back to CICS. When you want to get another program started (delayed) at the same terminal, you have to specify the TRANSID because a program must always run within a transaction. This is an important detail of CICS meta model. It is absolutely worth to investigate more into these concepts.
So why is it possible to LINK/XCTL/LOAD another program without specifying a TRANSID? Because your program already runs within a transaction. LINK, XCTL, or LOAD all cause an immediate execution of the specified program without transaction switching. That's also a general rule in CICS which you should understand.
And that's why you may specify a TRANSID on EXEC CICS RETURN but must not specify any program name, and you have to specify PROGRAM on EXEC CICS LINK/XCTL/LOAD but must not specify TRANSID.
Hope this helps |
|
Back to top |
|
|
Biswajit Nanda
New User
Joined: 28 Mar 2011 Posts: 9 Location: India
|
|
|
|
Thank you Stefan. This really clears all the doubt |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1193 Location: Dublin, Ireland
|
|
|
|
Quote: |
LINK, XCTL, or LOAD all cause an immediate execution of the specified program.... |
LOAD does not cause any program execution, it simply loads the program (and returns the load address).
Garry. |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
Garry Carroll wrote: |
Quote: |
LINK, XCTL, or LOAD all cause an immediate execution of the specified program.... |
LOAD does not cause any program execution, it simply loads the program (and returns the load address).
Garry. |
The EXEC CICS LOAD loads a named map set or data table in shared storage. It has nothing to do with transferring control and passing parameters. |
|
Back to top |
|
|
valyk
Active User
Joined: 16 Apr 2008 Posts: 104 Location: South Carolina
|
|
|
|
Load can specify the beginning address of the module:
Code: |
LOAD
>>-LOAD--PROGRAM(name)--+--------------+------------------------>
'-SET(ptr-ref)-'
>--+--------------------+--+----------------+--+------+--------><
+-LENGTH(data-area)--+ '-ENTRY(ptr-ref)-' '-HOLD-'
'-FLENGTH(data-area)-' |
And it is not just maps or data tables. From the manual:
Quote: |
Load makes available to the invoking task a copy of an application program, table, or map. If the program is defined with RELOAD=NO, it is only fetched from the library where it resides, if there is not a copy already in main storage. If the program is defined with RELOAD=YES, a new copy is always fetched from the library. (See the CICS Application Programming Guide for further details about maps.) Using LOAD can reduce system overhead. |
|
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
I've used LOAD to load an external Assembler CSECT into memory and obtain the LP address or obtain the LP address of a CSECT, if it's specified as Resident in the PPT entry (a/k/a Core Resident and already loaded).
When the LOADED module is not Core-Resident, CICS pages it out of memory at task termination.
If the non Core-Resident module is huge (huge is your own definition) and you're done with it and you're not at task termination, issue a RELEASE PROGRAM, which pages it out of memory.
If you have multiple tasks running concurrently which have loaded this huge module into memory, then a RELEASE PROGRAM would be the wise thing to do when the task (program) is done with it....
Bill |
|
Back to top |
|
|
|