|
|
| Author |
Message |
MNMan
New User
Joined: 03 Mar 2004 Posts: 4
|
|
|
|
Can someone give me direction to resolve an issue involving REXX code initiated from ISPF. The problem I am having is during the execution of the REXX program I am calling an Assembler module(that resides in the systems LINKLIST) which in turn calls a module that resides in a library that is not found in the standard search libraries. The call to the assembler program goes fine until it has to find(LOAD) the module residing in the vendor/private load library. If I call the REXX program using batch JCL and specify the vendor library as the STEPLIB then everything is OK - the assembler program can find the vendor module via the STEPLIB DD statement. However, this REXX code is initated via ISPF option 6 so I assume the 'steplib' needs to be set from within the REXX code. Does anyone have any idea as to how this can be resolved?
Thank you.
Gordon |
|
| Back to top |
|
 |
References
|
Posted: Wed Mar 03, 2004 12:44 am Post subject: Re: Does REXX contain a means to set an alternate load Library? |
 |
|
|
 |
bluebird
Specialist
Joined: 03 Feb 2004 Posts: 144
|
|
|
|
techncally you can allocate a steplib thru tso's allocate command,
but your site may restrict the use of STEPLIB (securitywise).
you can try allocating ispf 's load lib :
ISPLLIB by running this cmd
address ispexec (we are talking to ispf)
"libdef ispLlib DAtaset id('your dsn') "
hope it helps |
|
| Back to top |
|
 |
MNMan
New User
Joined: 03 Mar 2004 Posts: 4
|
|
|
|
Bluebird,
Thank you for the response! You are right, STEPLIB is a protected keyword. I also tried LIBDEF in the format of ....
ADDRESS ISPEXEC "LIBDEF ISPLLIB DATASET ID('"LOADLIB"')"
ADDRESS ISPEXEC "SELECT PGM(PULVR)"
... where "LOADLIB" was a REXX variable defined as the DS Name to the Vendor/private library. However, this did not work either - maybe I have a parameter error of sorts or missing something else.
Any other Ideas?
Thank you.
MNMAn |
|
| Back to top |
|
 |
bluebird
Specialist
Joined: 03 Feb 2004 Posts: 144
|
|
|
|
hello,
make changes as below
| Code: |
address ispexec "control errors return"
ADDRESS ISPEXEC "LIBDEF ISPLLIB DATASET ID('"LOADLIB"')"
say 'libdef ispllib shows :'
say rc zerrsm zerrlm zerrmsg
ADDRESS ISPEXEC "SELECT PGM(PULVR)"
say 'pgm call shows :'
say rc zerrsm zerrlm zerrmsg
|
you ll get msg and return code a helper in your investigation
you can postback results if you don't have ideas I'll see what I can do
or you could try a call thru TSO (if you don't need ispf)
| Code: |
"CALL '"loadlib"(modulename)'"
|
|
|
| Back to top |
|
 |
MNMan
New User
Joined: 03 Mar 2004 Posts: 4
|
|
|
|
Bluebird,
I ran the suggested REXX diagnostic code and posted the results as follows ...
349 *-* address ispexec "control errors return"
>>> "control errors return"
350 *-* ADDRESS ISPEXEC "LIBDEF ISPLLIB DATASET ID('"LOADLIB"')"
>>> "LIBDEF ISPLLIB DATASET ID('IOA.BMC.TEST.LOAD')"
351 *-* say 'libdef ispllib shows :'
>>> "libdef ispllib shows :"
libdef ispllib shows :
352 *-* say rc zerrsm zerrlm zerrmsg
>>> "0 ZERRSM ZERRLM ZERRMSG"
0 ZERRSM ZERRLM ZERRMSG
353 *-* ADDRESS ISPEXEC "SELECT PGM(PULVR)"
>>> "SELECT PGM(PULVR)"
PULVR - CTMAPI LOADING FAILED
I believe LIBDEF will not work due to documentation found in 'z/OS V1R5.0 ISPF Services Guide' that states "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 (SELECT CMD). "
Any other ideas?
Thank you.
MNMan |
|
| Back to top |
|
 |
bluebird
Specialist
Joined: 03 Feb 2004 Posts: 144
|
|
|
|
did you include the library where the ctmapi load module is in your libdef ?
and did u try direct thru TSO-CALL command ? |
|
| Back to top |
|
 |
MNMan
New User
Joined: 03 Mar 2004 Posts: 4
|
|
|
|
Bluebird,
I have tried using TSO using the TSOLIB command. However IBM documentation in 'z/OS V1R4.0 TSO/E Command Reference' states "If the TSOLIB command is issued from any other environment, like ISPF or REXX, only the TSOLIB command with its DISPLAY operand is valid. The TSOLIB command must be issued from a "TSO/E READY" environment." I tried the TSOLIB command anyway in my REXX code and recieved the following error:
IDY00046I TSOLIB terminated. A valid TSOLIB environment does not exist.
IDY00046I The TSOLIB command with the ACTIVATE, DEACTIVATE or RESET operands must be invoked from the TSO/E READY environment.
Any other ideas?
Thank you.
MNMan |
|
| Back to top |
|
 |
bluebird
Specialist
Joined: 03 Feb 2004 Posts: 144
|
|
|
|
DID YOU TRY THE tso call ?
pr try this
address link /* connects to linklib */
"pulvr"
and see what happens |
|
| Back to top |
|
 |
bluebird
Specialist
Joined: 03 Feb 2004 Posts: 144
|
|
|
|
try the libdef with all your load module libraries (asm + vendor) called in your pgm.
and call your pgm with ISPF 'select pgm(pgm)' cmd
hope it helps |
|
| Back to top |
|
 |
|
|