Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Concatenate to ISPLLIB ?

Status
Not open for further replies.

tcurrier

Programmer
Mar 5, 2000
40
US
In a Rexx exec, I am trying to concatenate 2 private libraries to ISPLLIB as follows:

Code:
ADDRESS TSO "ALLOC FI(MYLIB1) SHR DA('H2501S.T.DYNAMIC.LIBZ00')"
IF RC = 0 THEN CONCAT ISPLLIB MYLIB1                            
ADDRESS TSO "ALLOC FI(MYLIB2) SHR DA('H2501S.T.DYNAMIC.LIBZ01')"
IF RC = 0 THEN CONCAT ISPLLIB MYLIB2

I'm getting an error:

CONCAT- SPECIFIED DDNAME(S) ALREADY "OPEN"

Not sure if this belong in the 'Rexx' forum, but ... Thanks...
 
Not exactly REXX, but I don't believe there's an ISPF forum....

The error is because when ISPF starts, it OPENs all the ISPxLIB files. You can't concatenate to an already-open file. Not even CONCAT can do it.

Instead, you should LIBDEF:
Code:
address ISPEXEC "LIBDEF ISPPLIB DATASET ID('H2501S.T.DYNAMIC.LIBZ00') STACK"

This layers the datasets specified in "ID" above the current ISPLLIB. When you're finished using them,
Code:
address ISPEXEC "LIBDEF ISPPLIB"
and they evaporate.


Frank Clarke
Tampa Area REXX Programmers' Alliance
REXX Language Assn Listmaster
 
Thanks... using your method, I wasn't able to get it to work, though:

"ISPEXEC LIBDEF ISPLLIB DATASET ID('H2501S.T.DYNAMIC.LIBZ00') STACK"
"ISPEXEC LIBDEF ISPLLIB DATASET ID('H2501S.T.DYNAMIC.LIBZ01') STACK"

"ISPEXEC SELECT CMD(H2545Z00)"
IKJ56500I COMMAND H2545Z00 NOT FOUND

ADDRESS LINKPGM 'H2545Z00'
+++ RC(-3) +++

"ISPEXEC SELECT PGM(H2545Z00)"
Link to 'H2545Z00' failed, abend code = x'00000806'.
-------------------------------------------------------------
"ISPEXEC LIBDEF ISPLLIB DATASET
ID('H2501S.T.DYNAMIC.LIBZ00','H2501S.T.DYNAMIC.LIBZ01')"

"ISPEXEC SELECT PGM(H2545Z00)"
CEE3501S The module H2545Z01 was not found.
------------------------------------------------------------
"ISPEXEC LIBDEF ISPLLIB DATASET
ID('H2501S.T.DYNAMIC.LIBZ00','H2501S.T.DYNAMIC.LIBZ01')"

ADDRESS LINKPGM 'H2545Z00'
CEE3501S The module H2545Z01 was not found.
-------------------------------------------------------------
THIS IS THE ONLY WAY I COULD GET IT TO WORK :

"ISPEXEC LIBDEF ISPLLIB DATASET
ID('H2501S.T.DYNAMIC.LIBZ00','H2501S.T.DYNAMIC.LIBZ01')"

"ISPEXEC SELECT CMD(H2545Z00)"

*** NOW IN H2545Z00 ***
*** NOW IN H2545Z01 ***


--------------------------------------------------------------
 
Thats because in the initial attempt you effectively caused the first LIBDEF to be thrown aside for the second one.

The way you eventually got it to work is the correct method.
 

He STACKed the LIBDEFs, so he actually has all of them available. Notice that he also switched to "SELECT CMD(" as Doug Nadel advised him to do over on MVSHELP. I think that was "the answer".


Frank Clarke
Tampa Area REXX Programmers' Alliance
REXX Language Assn Listmaster
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top