REXX LINKMVS search order

276 views
Skip to first unread message

Swarbrick, Frank

unread,
May 20, 2021, 2:01:02 PM5/20/21
to ISPF discussion list (ISPF-L@LISTSERV.ND.EDU)

I’m trying to invoke the COBOL compiler from a REXX EXEC.  Since the compiler library is not in my TSO STEPLIB I am using LIBDEF ISPLLIB to define it.  It seems to find the compiler driver just fine (IGYCRCTL), but the driver seems to do a dynamic call to another module (IGYCSIMD), and that is not being found.  How might I resolve this?

 

address ispexec "LIBDEF ISPLLIB DATASET ID('SYS1.ADCOBB.SIGYCOMP')"

address linkpgm 'IGYCRCTL'                                        

 

CSV003I REQUESTED MODULE IGYCSIMD NOT FOUND                                   

CSV028I ABEND806-04  JOBNAME=DVFJS     STEPNAME=ALLPROG                       

IRX0250E System abend code 806, reason code 00000004.                         

IRX0255E Abend in host command IGYCRCTL or address environment routine LINKPGM.

IEA995I SYMPTOM DUMP OUTPUT                                

SYSTEM COMPLETION CODE=806  REASON CODE=00000004           

 TIME=11.54.02  SEQ=07756  CPU=0000  ASID=00B4             

 PSW AT TIME OF ERROR  070C1000   816037B2  ILC 2  INTC 0D 

   NO ACTIVE MODULE FOUND                                  

   NAME=UNKNOWN                                            

   DATA AT PSW  016037AC - 8400181E  0A0D18FB  180C181D    

   GR 0: 00001F00   1: 84806000                            

      2: 00000000   3: 00000000                            

      4: 00000000   5: 009FF8C0                            

      6: 000000FF   7: 00000000                            

      8: 7EE01068   9: 01603CD8                            

      A: 00000000   B: 00000000                            

      C: 00000000   D: 7EE01068                            

      E: 84806000   F: 00000004                             

 END OF SYMPTOM DUMP                                       

     2 *-* address linkpgm 'IGYCRCTL'                      

       +++ RC(-2054) +++                                   

 

Interestingly, I can invoke it from a CLIST with no issue, with just the following:

CALL 'SYS1.ADCOBB.SIGYCOMP(IGYCRCTL)'

 

Thanks,

Frank


The information contained in this electronic communication and any document attached hereto or transmitted herewith is confidential and intended for the exclusive use of the individual or entity named above. If the reader of this message is not the intended recipient or the employee or agent responsible for delivering it to the intended recipient, you are hereby notified that any examination, use, dissemination, distribution or copying of this communication or any part thereof is strictly prohibited. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy this communication. Thank you.

Binyamin Dissen

unread,
May 20, 2021, 2:12:58 PM5/20/21
to ispf-...@nd.edu
ATTCHMVS.

On Thu, 20 May 2021 18:00:57 +0000 "Swarbrick, Frank"
<Frank.S...@efirstbank.com> wrote:

:>I'm trying to invoke the COBOL compiler from a REXX EXEC. Since the compiler library is not in my TSO STEPLIB I am using LIBDEF ISPLLIB to define it. It seems to find the compiler driver just fine (IGYCRCTL), but the driver seems to do a dynamic call to another module (IGYCSIMD), and that is not being found. How might I resolve this?
--
Binyamin Dissen <bdi...@dissensoftware.com>
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

Paul Gilmartin

unread,
May 20, 2021, 2:23:26 PM5/20/21
to ISPF-List
On 2021-05-20, at 12:00:57, Swarbrick, Frank wrote:
>
> I’m trying to invoke the COBOL compiler from a REXX EXEC. Since the compiler library is not in my TSO STEPLIB I am using LIBDEF ISPLLIB to define it. It seems to find the compiler driver just fine (IGYCRCTL), but the driver seems to do a dynamic call to another module (IGYCSIMD), and that is not being found. How might I resolve this?
>
Is it possible that IGYCRCTL is in LNKLST regardless of LIBDEF?
What does DDLIST (ISRDDN) Member IGYCRCTL show?
Is DDLIST LIBDEF-savvy?

> address ispexec "LIBDEF ISPLLIB DATASET ID('SYS1.ADCOBB.SIGYCOMP')"
> address linkpgm 'IGYCRCTL'
>
> CSV003I REQUESTED MODULE IGYCSIMD NOT FOUND
> CSV028I ABEND806-04 JOBNAME=DVFJS STEPNAME=ALLPROG
> ...
What does say for Member IGYCSIMD?
Do I suspect correctly that LIBDEF does not add its argument to the
conventional TASKLIB/STEPLIB/LNKLST search order, but only to a
list maintained privately by ISPF and not searched by Rexx or by
ATTACH macro?

> Interestingly, I can invoke it from a CLIST with no issue, with just the following:
> CALL 'SYS1.ADCOBB.SIGYCOMP(IGYCRCTL)'
>
I believe that CALL ATTACHes a subtask adding the data set name
to TASKLIB.

This seems to be Conway's Law in operation. You may be SoL.
Or, in Rexx, ADDRESS TSO CALL ...

Alas, ADDRESS ATTCHMVS has no TASKLIB facility.

-- gil

Swarbrick, Frank

unread,
May 20, 2021, 2:39:53 PM5/20/21
to ISPF discussion list (ISPF-L@LISTSERV.ND.EDU)

Paul Gilmartin

unread,
May 20, 2021, 2:40:15 PM5/20/21
to ISPF-List

On 2021-05-20, at 12:12:56, Binyamin Dissen wrote:
>
> ATTCHMVS.
>
Does ATTCHMVS use LIBDEF ISPLLIB entries in TASKLIB? I'd regard
that as outside the purview of Rexx.

But, on further review:
https://www.ibm.com/docs/en/zos/2.4.0?topic=environments-host-command-linking-attaching-programs

- ISPLLIB. If the user issued LIBDEF ISPLLIB ..., the system searches the new
alternate library defined by LIBDEF followed by the ISPLLIB library.

The page above seems to apply to LINKMVS as well as ATTCHMVS.
Is an RCF in order?

> On Thu, 20 May 2021 18:00:57 +0000 "Swarbrick, Frank" wrote:
>
> :>I'm trying to invoke the COBOL compiler from a REXX EXEC. Since the compiler library is not in my TSO STEPLIB I am using LIBDEF ISPLLIB to define it. It seems to find the compiler driver just fine (IGYCRCTL), but the driver seems to do a dynamic call to another module (IGYCSIMD), and that is not being found. How might I resolve this?
>
> :>address ispexec "LIBDEF ISPLLIB DATASET ID('SYS1.ADCOBB.SIGYCOMP')"
> :>address linkpgm 'IGYCRCTL'
> ...
-- gil


Marvin Knight

unread,
May 20, 2021, 2:41:12 PM5/20/21
to ispf-...@nd.edu
The COBOL library would need to be allocated to ISPLLIB prior to invoking ISPF so that it is a TASKLIB for the ISPTASK screen task.  LIBDEF does  not work for programs that link/attach other programs that dont use the SELECT service.  
SELECT PGM(xx) with a LIBDEF just does a LINK to the pgm using the DCB parm to point at LIBDEF'd library.  When that pgm in turn does its own link the DCB parm is
not propagated so the linked pgm is not found.
If a SELECT CMD is used then the program is attached with the LIBDEF'd library used as a tasklib.  As long as that task is used other programs could be found.    IGYCRCTL  would have to be coded to accept a CPPL to use SELECT CMD() though.  I doubt it was coded to handle R1 both as a program parm or a CPPL.    
Re-allocating ISPLLIB from TSO ready may work unless the COBOL routines invoke authorized programs which would not run under ISPTASK.

Marvin Knight





From:        "Swarbrick, Frank" <Frank.S...@efirstbank.com>
To:        "ISPF discussion list (ISP...@LISTSERV.ND.EDU)" <ISP...@LISTSERV.ND.EDU>
Date:        05/20/2021 01:01 PM
Subject:        [EXTERNAL] [ISPF-L] REXX LINKMVS search order
Sent by:        ispf-...@nd.edu




I’m trying to invoke the COBOL compiler from a REXX EXEC. Since the compiler library is not in my TSO STEPLIB I am using LIBDEF ISPLLIB to define it. It seems to find the compiler driver just fine (IGYCRCTL), but the driver seems to do ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender

This message came from outside your organization.


ZjQcmQRYFpfptBannerEnd
--
You received this message because you are subscribed to the Google Groups "ISPF discussion list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
ispf-l-list...@nd.edu
.
To view this discussion on the web visit
https://groups.google.com/a/nd.edu/d/msgid/ispf-l-list/CY4PR04MB0470AC78FA8E21ACC8C08C3F942A9%40CY4PR04MB0470.namprd04.prod.outlook.com.


Swarbrick, Frank

unread,
May 20, 2021, 2:47:36 PM5/20/21
to ISPF discussion list (ISPF-L@LISTSERV.ND.EDU)
Now there is some outside of the box thinking! (Or at least outside of by little box!). Doing a CALL from the TSO environment within REXX works!

I can't really speak to most of the other questions you pose, other than to say we don't have the compiler in LNKLST.
I imagine you are correct about LIBDEF not using TASKLIB. But I don't really understand how TASKLIB works, anyway.

Thanks!!
Frank
--
You received this message because you are subscribed to the Google Groups "ISPF discussion list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ispf-l-list...@nd.edu.
To view this discussion on the web visit https://urldefense.proofpoint.com/v2/url?u=https-3A__groups.google.com_a_nd.edu_d_msgid_ispf-2Dl-2Dlist_B024A089-2DECCB-2D4375-2D949E-2D169742E296DF-2540GMail.com&d=DwIFaQ&c=93gI-qvDzOqjAhl5WCio4Vi8HsYhTiwto8TEKTLDJl8&r=MLqSQDjY_xXgyLjIKvsPODAWYCCf32YAlH2zNqd_ogQ&m=ZHkv9krGT0DZl1MN3qmWCO0ac8FXV0Gw3ACWwoERq3A&s=uP0NT5kBk8z_v_1_RA3V3Y1zYdbyfsBevxXrI_4L7wY&e= .

Paul Gilmartin

unread,
May 20, 2021, 2:56:31 PM5/20/21
to ISPF-List
On 2021-05-20, at 12:41:07, Marvin Knight wrote:
>
> The COBOL library would need to be allocated to ISPLLIB prior to invoking ISPF so that it is a TASKLIB for the ISPTASK screen task. LIBDEF does not work for programs that link/attach other programs that dont use the SELECT service.
>
I said recently:
> Does ATTCHMVS use LIBDEF ISPLLIB entries in TASKLIB? I'd regard
> that as outside the purview of Rexx.
>
> But, on further review:
> https://www.ibm.com/docs/en/zos/2.4.0?topic=environments-host-command-linking-attaching-programs
>
> - ISPLLIB. If the user issued LIBDEF ISPLLIB ..., the system searches the new
> alternate library defined by LIBDEF followed by the ISPLLIB library.
>
> The page above seems to apply to LINKMVS as well as ATTCHMVS.
> Is an RCF in order?
>
Yes. What should I say in my RCF? (I could just quote you,
without attribution.)

> SELECT PGM(xx) with a LIBDEF just does a LINK to the pgm using the DCB parm to point at LIBDEF'd library. When that pgm in turn does its own link the DCB parm is
> not propagated so the linked pgm is not found.
> If a SELECT CMD is used then the program is attached with the LIBDEF'd library used as a tasklib. As long as that task is used other programs could be found. IGYCRCTL would have to be coded to accept a CPPL to use SELECT CMD() though. I doubt it was coded to handle R1 both as a program parm or a CPPL.
> Re-allocating ISPLLIB from TSO ready may work unless the COBOL routines invoke authorized programs which would not run under ISPTASK.

-- gil

Mike Shaw

unread,
May 20, 2021, 2:56:45 PM5/20/21
to ispf-...@nd.edu
Would the TSOLIB command work?

Mike Shaw
MVS/QuickRef Support Group
Chicago-Soft, Ltd.


Swarbrick, Frank

unread,
May 20, 2021, 3:02:38 PM5/20/21
to ISPF discussion list (ISPF-L@LISTSERV.ND.EDU)

Based on the discussion found at https://bit.listserv.tsorexx.narkive.com/klOB2fz9/tsolib-problem-when-called-from-rexx-from-the-tso-ready-prompt, I am doubful.

But there is too much back and forth in that discussion for me to make much sense out of it, so who knows.

 

From: ispf-...@nd.edu <ispf-...@nd.edu> On Behalf Of Mike Shaw
Sent: Thursday, May 20, 2021 12:56 PM
To: ispf-...@nd.edu

Marvin Knight

unread,
May 20, 2021, 3:45:52 PM5/20/21
to ispf-...@nd.edu
TSOLIB has to be issued from TSO ready.  It would basically be the same as using ISPLLIB from TSO ready except it might affect authorized commands as well.

to better understand LIBDEF with the SELECT service you can reference an old SHARE presentation "ISPF Behind the Scenes"  .  Google "share ispf behind the scenes"

Gil,  
   I dont know exactly how TSO implemented ATACHMVS, LINKMVS, etc   I would expect the COBOL compiler would need LINKMVS due to the parms passed.  
If TSO sets up a TCB to run the LINK to the program using the LIBDEF'd ISPLLIB as a tasklib then the link would run under that TCB and subsequent links should work.
If they just LINK to the pgm using the DCB parm like ISPF does with SELECT PGM() then subsequent links would have issues.    



Marvin Knight





From:        "Swarbrick, Frank" <Frank.S...@efirstbank.com>
To:        "ISPF discussion list (ISP...@LISTSERV.ND.EDU)" <ISP...@LISTSERV.ND.EDU>
Date:        05/20/2021 02:02 PM
Subject:        RE: [EXTERNAL] Re: [ISPF-L] REXX LINKMVS search order
Sent by:        ispf-...@nd.edu




Based on the discussion found at https://bit.listserv.tsorexx.narkive.com/klOB2fz9/tsolib-problem-when-called-from-rexx-from-the-tso-ready-prompt, I am doubful. But there is too much back and forth in that discussion for me to make much sense ZjQcmQRYFpfptBannerStart
.
To view this discussion on the web visit
https://groups.google.com/a/nd.edu/d/msgid/ispf-l-list/CY4PR04MB0470D67388907255E324561B942A9%40CY4PR04MB0470.namprd04.prod.outlook.com.


Binyamin Dissen

unread,
May 20, 2021, 4:36:38 PM5/20/21
to ispf-...@nd.edu
My mistake.

I assumed that if LINKMVS used ISPLLIB that it would use it as a tasklib for
ATTACHMVS.

I guess that you are stuck using SELECT CMD (perhaps for a clist?) to drive
the process. I had an old SHARE presentation where I showed how to invoke a
program expecting an OS plist via SELECT CMD.

On Thu, 20 May 2021 18:39:49 +0000 "Swarbrick, Frank"
<Frank.S...@efirstbank.com> wrote:

:>Same result.

Paul Gilmartin

unread,
May 20, 2021, 5:21:53 PM5/20/21
to ISPF-List
On 2021-05-20, at 12:47:31, Swarbrick, Frank wrote:
>
> Now there is some outside of the box thinking! (Or at least outside of by little box!). Doing a CALL from the TSO environment within REXX works!
>
> I can't really speak to most of the other questions you pose, other than to say we don't have the compiler in LNKLST.
> I imagine you are correct about LIBDEF not using TASKLIB. But I don't really understand how TASKLIB works, anyway.
>
> Thanks!!
>
You're welcome. But ADDRESS TSO CALL imposes a couple onerous/archaic restrictiona:
o You're limited to one PARM, or none. No alternate DDNAME list.
o That PARM must not exceed 100 bytes.

I perused the Assembler Services ATTACH doc. I can compose
a large RCF. Stay tuned to ASSEMBLER-LIST.

-- gil

Reply all
Reply to author
Forward
0 new messages