| View previous topic :: View next topic |
| Author |
Message |
adous_sg Beginner
Joined: 13 Feb 2004 Posts: 25 Topics: 9
|
Posted: Mon Apr 12, 2004 1:56 am Post subject: How to concatenate multiple load modules library in REXX |
|
|
Assuming:
the search library sequence is |
|
| Back to top |
|
 |
adous_sg Beginner
Joined: 13 Feb 2004 Posts: 25 Topics: 9
|
Posted: Mon Apr 12, 2004 2:34 am Post subject: |
|
|
Thanks Ravi
But How can I call my PGM1? (The searching path for PGM1 is the above concatenated libraries)
"CALL PGM1" ??? |
|
| Back to top |
|
 |
adous_sg Beginner
Joined: 13 Feb 2004 Posts: 25 Topics: 9
|
Posted: Mon Apr 12, 2004 6:46 am Post subject: |
|
|
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 |
|
 |
adous_sg Beginner
Joined: 13 Feb 2004 Posts: 25 Topics: 9
|
Posted: Mon Apr 12, 2004 9:43 am Post subject: |
|
|
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 |
|
 |
adous_sg Beginner
Joined: 13 Feb 2004 Posts: 25 Topics: 9
|
Posted: Mon Apr 19, 2004 8:05 am Post subject: |
|
|
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 |
|
 |
adous_sg Beginner
Joined: 13 Feb 2004 Posts: 25 Topics: 9
|
Posted: Mon Apr 19, 2004 8:59 am Post subject: |
|
|
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 |
|
 |
Maton_Man Beginner

Joined: 30 Jan 2004 Posts: 123 Topics: 0
|
Posted: Thu Apr 22, 2004 7:17 pm Post subject: |
|
|
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...  _________________ My opinions are exactly that. |
|
| Back to top |
|
 |
adous_sg Beginner
Joined: 13 Feb 2004 Posts: 25 Topics: 9
|
Posted: Fri Apr 23, 2004 8:34 am Post subject: |
|
|
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 |
|
 |
Dibakar Advanced

Joined: 02 Dec 2002 Posts: 702 Topics: 64 Location: USA
|
Posted: Sat Feb 05, 2005 6:06 am Post subject: |
|
|
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 |
|
 |
semigeezer Supermod
Joined: 03 Jan 2003 Posts: 1014 Topics: 13 Location: Atlantis
|
Posted: Sat Feb 05, 2005 12:59 pm Post subject: |
|
|
| 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 |
|
 |
Dibakar Advanced

Joined: 02 Dec 2002 Posts: 702 Topics: 64 Location: USA
|
Posted: Fri Feb 11, 2005 3:31 am Post subject: |
|
|
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 |
|
 |
|
|
|