MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

How to concatenate multiple load modules library in REXX
Goto page 1, 2  Next
 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF
View previous topic :: View next topic  
Author Message
adous_sg
Beginner


Joined: 13 Feb 2004
Posts: 25
Topics: 9

PostPosted: Mon Apr 12, 2004 1:56 am    Post subject: How to concatenate multiple load modules library in REXX Reply with quote

Assuming:
the search library sequence is
Back to top
View user's profile Send private message
adous_sg
Beginner


Joined: 13 Feb 2004
Posts: 25
Topics: 9

PostPosted: Mon Apr 12, 2004 2:34 am    Post subject: Reply with quote

Thanks Ravi
But How can I call my PGM1? (The searching path for PGM1 is the above concatenated libraries)

"CALL PGM1" ???
Back to top
View user's profile Send private message
adous_sg
Beginner


Joined: 13 Feb 2004
Posts: 25
Topics: 9

PostPosted: Mon Apr 12, 2004 6:46 am    Post subject: Reply with quote

Thanks Ravi, However it's not my answer, sorry to not delcare my question clearly.

Actually I want to know how to call one particular program from concatanated libraries not from only one library.

E.g. PGM1 is possible in
Back to top
View user's profile Send private message
adous_sg
Beginner


Joined: 13 Feb 2004
Posts: 25
Topics: 9

PostPosted: Mon Apr 12, 2004 9:43 am    Post subject: Reply with quote

Do you mean
"ALLOC FI(ISPLLIB) DA('USERID.XXX.LOAD','USERID.YYY.LOAD','USERID.ZZZ.LOAD') SHR"

"CALL (PGM1)"

Then system will search for PGM1 from above searching path automatically?

Thanks
Back to top
View user's profile Send private message
adous_sg
Beginner


Joined: 13 Feb 2004
Posts: 25
Topics: 9

PostPosted: Mon Apr 19, 2004 8:05 am    Post subject: Reply with quote

Thanks Ravi
It works, However I have another problem comes in.
Assuming PGM1 resides under 'USERID.XXX.LOAD', it calls one sub-routine named PGM2 which resides under 'USERID.YYY.LOAD', How can I run the PGM1 under REXX (not thru JCL)?

The above 'ISPLLIB' definition can only concatenate the searching path for PGM1 but it is not searched by MVS member searches caused by the execution of ATTACH, LINK, LOAD, or XCTL.

Need u kindly adivce how to define/concatenate the 'JOBLIB' for the main programs and calling sub-route which reside in different load-module librarier.

Thanks in advance!
Back to top
View user's profile Send private message
adous_sg
Beginner


Joined: 13 Feb 2004
Posts: 25
Topics: 9

PostPosted: Mon Apr 19, 2004 8:59 am    Post subject: Reply with quote

Hi Ravi
Yes I have tried to cal PGM1, However system prompts 'PGM2 is not found under load module libraies' if the PGM1 and PGM2 reside in different load libraies.

I also tiried to put the PGM1 and the PGM2 into the same library then no problem.

The below is the descirption form IBM manual, looks like "LIBDEF ISPLLIB" isn't work for searching the called sub-routine. any idea?

"The LIBDEF ISPLLIB service can be used to specify load libraries containing
programs and command processors, which are part of an ISPF application. The
LIBDEF ISPLLIB definition causes load modules to be searched in the specified
load libraries by the SELECT service.
The LIBDEF library definitions are not searched by MVS member searches caused
by the execution of ATTACH, LINK, LOAD, or XCTL macros within the selected
program (SELECT PGM), or on the selection of authorized programs or commands.
The LIBDEF library definitions are searched for selected commands"

Many thanks
Back to top
View user's profile Send private message
Maton_Man
Beginner


Joined: 30 Jan 2004
Posts: 123
Topics: 0

PostPosted: Thu Apr 22, 2004 7:17 pm    Post subject: Reply with quote

There are a number of ways you can do this but none of them necessarily as flexible as you might like. I will list all the ones I can think of so ignore the ones you already know.

1. You could have your programs put into a library which is in the LINKLIST. This will make them available without the need for a LIBDEF.
2. You could use TSOLIB. You allocate libraries in a similar fashion to ALTLIB but you must exit to the TSO ready prompt to issue the command, it cannot be done from ISPF.
3. You could reallocate your ISPLLIB at logon time by modifying either your logon procedure (the JCL which is your TSO session) or by executing a Rexx or CLIST which reallocates ISPLLIB before you get into ISPF.
4. Statically link all your modules together into one load??? (Clutching at straws here...)
5. Rewrite your application now that you know what you can't do in ISPF... Smile
_________________
My opinions are exactly that.
Back to top
View user's profile Send private message
adous_sg
Beginner


Joined: 13 Feb 2004
Posts: 25
Topics: 9

PostPosted: Fri Apr 23, 2004 8:34 am    Post subject: Reply with quote

Thanks Maton_man for your great suggestion,
However how can I execute a Rexx before I get into ISPF?

And I have tried the following, it works

ADDRESS ISPFEXEC "LIBDEF STEPLIB DATASET ID('XXXX','YYYY')"

Thanks again
Back to top
View user's profile Send private message
Dibakar
Advanced


Joined: 02 Dec 2002
Posts: 702
Topics: 64
Location: USA

PostPosted: Sat Feb 05, 2005 6:06 am    Post subject: Reply with quote

I was also having problem with pgms present in different libraries. then I copied them to a single dateset but still the problem didn't go. Finally Merv's Select suggestion worked.

But copying evrything into a single library doesn't look very feasible solution, especially when the actual code is constantly modified by someone else.
Back to top
View user's profile Send private message Send e-mail
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Sat Feb 05, 2005 12:59 pm    Post subject: Reply with quote

allocate all the data sets to ISPLLIB using LIBDEF. Then write a CLIST that does the call. Invoke the CLIST via ISPEXEC SELECT CMD(). That should establish the tasklib for the CLIST task which in turn becomes a default tasklib for the called program.
Back to top
View user's profile Send private message Visit poster's website
Dibakar
Advanced


Joined: 02 Dec 2002
Posts: 702
Topics: 64
Location: USA

PostPosted: Fri Feb 11, 2005 3:31 am    Post subject: Reply with quote

can't this be done by rexx? i tried rexx and i am getting s806 (reason code 04).

i have forgotten clist totally and even this single call statement i am not able to convert to clist?
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF All times are GMT - 5 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group